Почему file_get_contents работает быстрее, чем memcache_get?

Я загружаю 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 секунды.

8
задан halfer 4 March 2012 в 15:21
поделиться