2013-03-27 3 views
-1

Я показываю datatable с помощью jQuery ajax. Есть один файл, который я включаю, и он занимает 2,5 секунды в первый раз. Случайный случайный. Я не мог понять, почему это так. У кого-нибудь есть ключ ?.PHP включает медленные занимает 2,5 секунды

Запуск в моем локального сервера Apache в окнах 7. Это потому, что мой компьютер делает что-то или мой жесткий диск фрагментирован? Я уже дефрагментирую свой harddisk..fragment 0%. Так что-то еще? У кого-то была эта проблема?

Проблема. У меня так много включений, прежде чем я доберусь до этой части кода. К ним относятся никогда не быть таким медленным. Я использую фреймворк кода. Он включает много файлов. Я даже поставил полный путь, чтобы найти, почему он создает проблему. Безрезультатно.

$time_start = microtime_float(); 

include $plugindir."/resources/queries/$queryname".".php"; 

$time_end = microtime_float(); 
echo "elapsed seconds1 $time_end $time_start : ".($time_end-$time_start). " seconds"; 

Не все время. Первый раз в основном. Странно как-то.

+4

Некоторый код будет приятным. У меня нет моей телепатии и я не вижу, что происходит. –

+1

Что находится внутри этого файла? Вызов базы данных? Неэффективный код? – greg

+0

даже пустой файл такой же выпуск. Потому что, если вы включите внутри метода, он делает это время вместо того, чтобы найти этот файл из кеша. –

ответ

2

Вы не рассчитываете на самом деле : время, но укажите + время выполнения. Так что время будет сильно зависеть от того, что вы делаете внутри включенного файла. Скорее всего, у вас есть несколько длинных запросов к базе данных внутри этого файла.
Еще одна вещь. Использование include $plugindir."/resources/queries/$queryname".".php"; очень опасно, если вы не проверите $queryname для любой возможной инъекции.

+0

Я как-то понял, но решения пока нет. если то же самое относится к классу, вообще никакой задержки. Если я включил метод, скорость будет от 100 мс до 2.7 сек. Таким образом, либо мне нужно включить, как 100 запросов php-файла, включите заранее, чтобы избавиться от памяти. Есть идеи? –

1

Если вы используете XDebug, попробуйте изменить эту строку в php.ini:

xdebug.remote_enable=on 

к этому один:

xdebug.remote_enable=off 

При подключении через локальный хост, используйте 127.0.0.1 вместо , это, кажется, повторяющаяся проблема на Windows 8, но это всегда стоит попробовать!

+0

Проблема возникает только в том случае, если она находится внутри метода. В основном я использую другой файл запроса (который генерирует связанные с запросом данные в php). Вместо того, чтобы загружать 100 запросов, я думал, что буду включать по требованию ... но это создает проблему. Если они совпадают с первой строкой файла, скорость становится очень быстрой, поскольку она кэшируется. если он внутри метода, он не кэшируется по какой-либо причине между вызовами. –

Смежные вопросы