Я загружаю XML-файлы с диска, используя file_get_contents, и в качестве теста я обнаружил, что могу загрузить файл размером 156 КБ, используя file_get_contents()
1000 раз. за 3,99 секунды. Я создал подкласс части, которая выполняет загрузку, и заменил ее слоем кэша памяти, и на моей машине разработки я обнаружил, что могу выполнить 1000 загрузок одного и того же документа за 4,54 секунды.
Я ценю, что file_get_contents() выполняет некоторое кэширование, но похоже, что на самом деле это быстрее, чем хорошо известная техника кэширования. На одном сервере производительность file_get_contents()
настолько высока, насколько это возможно?
Я использую PHP 5.2.17 через Macports, OS X 10.6.8.
Изменить: я обнаружил в XML-документах такого размера небольшое преимущество в использовании флага MEMCACHE_COMPRESSED
. 1500 загрузок через memcache выполняются за 6,44 секунды (со сжатием), а не за 6,74 секунды (без сжатия). Однако оба они медленнее, чем file_get_contents
, который выполняет одинаковое количество загрузок за 5,71 секунды.