Недавно я заметил, что мой сервер разработки, настроенный на Windows 10, работает медленно.
Я выполнил некоторую отладку / профилирование (Prestashop 1.6) с помощью xdebug, и виноват был file_exists. Время загрузки скрипта составляло ~ 43 с, тогда как file_exist занимало ~ 40 с.
Я написал небольшой тест, чтобы увидеть, как производительность будет на моем компьютере с Windows 10 и старом ноутбуке Centos7. Вот сценарий:
<?php
$microtime = microtime(true);
function displayCounter($txt){
global $microtime;
echo "<p> {$txt}: ". round((microtime(true) - $microtime) * 1000,0) ."ms</p>";
$microtime = microtime(true);
}
$file_prefix = __DIR__ . '/file';
for($i= 1; $i < 1000; $i++){
file_put_contents($file_prefix . $i, '');
}
displayCounter('File Creation');
for($i= 1; $i < 1000; $i++){
file_exists($file_prefix . $i);
}
displayCounter('file_exists');
clearstatcache();
for($i= 1; $i < 1000; $i++){
file_exists($file_prefix . $i);
}
displayCounter('file_exists (after cache clear)');
for($i= 1; $i < 1000; $i++){
unlink($file_prefix . $i);
}
displayCounter('unlink');
Сервер Windows основан на SSD- накопителе и имеет следующий результат:
File Creation: 1992ms
file_exists: 1055ms
file_exists (after cache clear): 963ms
unlink: 696ms
И Linux (ноутбук с жестким диском 5400rpm )
File Creation: 226ms
file_exists: 5ms
file_exists (after cache clear): 4ms
unlink: 50ms
Я думаю, что здесь что-то не так, но пока не знаю что - поэтому я пришел сюда за помощью.
Не могу решить, в чем здесь проблема. Любой "сервис", который я должен искать? Нравится Defender (который отключен в моем случае)
РЕДАКТИРОВАТЬ
Сделал еще несколько испытаний с тем же сценарием. Повторил это несколько раз, чтобы проверить и результаты ниже. Справочник, из которого вы называете скрипт, имеет значение. Все еще не могу найти то, что ломает это (кроме того, что я знаю, что это Windows ...)
Все тесты (кроме M.2 Drive) хороши, если задан текущий путь cmd
где выполняется работа.
C: M.2
H: SSD
D: SSDHD
F: / E: HDD
(GPT) Current Folder C:\ (M.2)
D:\test_file_exists\test.php (SSDHD)
File Creation: 2541ms
file_exists: 1188ms
file_exists (cached in theory): 986ms
file_exists (after cache clear): 879ms
unlink: 1361ms
(GPT) Current Folder C:\ (M.2)
E:\test_file_exists\test.php (HDD)
File Creation: 2617ms
file_exists: 1031ms
file_exists (cached in theory): 893ms
file_exists (after cache clear): 841ms
unlink: 1156ms
(MBR) Current Folder C:\ (M.2)
C:\test_file_exists\test.php (M.2)
File Creation: 2485ms
file_exists: 2283ms
file_exists (cached in theory): 2045ms
file_exists (after cache clear): 2053ms
unlink: 1191ms
(MBR) Current Folder C:\ (M.2)
F:\test_file_exists\test.php (HDD)
File Creation: 2274ms
file_exists: 1080ms
file_exists (cached in theory): 922ms
file_exists (after cache clear): 838ms
unlink: 1105ms
(MBR) Current Folder C:\ (M.2)
H:\test_file_exists\test.php (SSD)
File Creation: 2243ms
file_exists: 1024ms
file_exists (cached in theory): 860ms
file_exists (after cache clear): 903ms
unlink: 1134ms
=============== TESTS STARTED IN ROOT OF VOLUME
(GPT) Current Folder D:\ (SSDHD)
D:\test_file_exists\test.php (SSDHD)
File Creation: 2277ms
file_exists: 1056ms
file_exists (cached in theory): 904ms
file_exists (after cache clear): 897ms
unlink: 1135ms
(GPT) Current Folder E:\ (HDD)
E:\test_file_exists\test.php (HDD)
File Creation: 2436ms
file_exists: 1116ms
file_exists (cached in theory): 844ms
file_exists (after cache clear): 849ms
unlink: 1145ms
(MBR) Current Folder C:\ (M.2)
C:\test_file_exists\test.php (M.2)
File Creation: 2311ms
file_exists: 2115ms
file_exists (cached in theory): 1986ms
file_exists (after cache clear): 1969ms
unlink: 1168ms
(MBR) Current Folder F:\ (HDD)
F:\test_file_exists\test.php (HDD)
File Creation: 2365ms
file_exists: 1031ms
file_exists (cached in theory): 961ms
file_exists (after cache clear): 849ms
unlink: 1112ms
(MBR) Current Folder H:\ (SSD)
H:\test_file_exists\test.php (SSD)
File Creation: 2251ms
file_exists: 1066ms
file_exists (cached in theory): 873ms
file_exists (after cache clear): 835ms
unlink: 1137ms
=============== TESTS STARTED IN FOLDER OF SCRIPT
(GPT) Current Folder D:\test_file_exists (SSDHD)
D:\test_file_exists\test.php (SSDHD)
File Creation: 1279ms
file_exists: 61ms
file_exists (cached in theory): 60ms
file_exists (after cache clear): 51ms
unlink: 1873ms
(GPT) Current Folder E:\test_file_exists (HDD)
E:\test_file_exists\test.php (HDD)
File Creation: 1395ms
file_exists: 68ms
file_exists (cached in theory): 59ms
file_exists (after cache clear): 48ms
unlink: 1183ms
(MBR) Current Folder C:\test_file_exists (M.2)
C:\test_file_exists\test.php (M.2)
File Creation: 1410ms
file_exists: 1261ms
file_exists (cached in theory): 1293ms
file_exists (after cache clear): 1298ms
unlink: 1129ms
(MBR) Current Folder F:\test_file_exists (HDD)
F:\test_file_exists\test.php (HDD)
File Creation: 1285ms
file_exists: 58ms
file_exists (cached in theory): 61ms
file_exists (after cache clear): 57ms
unlink: 1639ms
(MBR) Current Folder H:\test_file_exists (SSD)
H:\test_file_exists\test.php (SSD)
File Creation: 1365ms
file_exists: 72ms
file_exists (cached in theory): 55ms
file_exists (after cache clear): 62ms
unlink: 1092ms