Не использует ли функция PHP filemtime память меньше, чем когда file_get_contents () файл? - PullRequest
0 голосов
/ 16 мая 2011

Я знаю, что это довольно очевидно, но взгляните на это так:

Допустим, у меня есть текстовый файл, содержащий данные JSON, и этот файл будет открыт определенным файлом PHPговорите один раз в секунду каждый день и делайте что-нибудь с этим.Я думал о кэшировании содержимого в памяти с использованием memcache.Теперь проблема в том, как он узнает, изменилось ли содержимое текстового файла?Я решил сохранить исходное файловое время в memcached и сравнить его с текущим файловым временем каждый раз.

Теперь вот где возникает проблема, потому что мне также приходится каждый раз выполнять файловое время.И я не уверен, что в этом сценарии установка memcache + filemtime будет лучшим выбором или она мало отличается от выполнения file_get_contents каждый раз, когда скрипт запускается, получая свежее содержимое все время?

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Я думаю, что filemtime () должен быть намного быстрее, чем file_get_contents (), если PHP делает то, что правильно (безусловно) и использует адекватные системные вызовы для получения информации из базовой файловой системы. Будьте осторожны, так как filemtime () кэшируется по умолчанию и имеет разрешение в секунду:

http://php.net/manual/en/function.filemtime.php

Учитывая, что вы используете memcache, я бы сказал, что общая производительность также зависит от нескольких факторов, относящихся к вашей установке и файлам (например, каков средний размер - и ожидаемая частота изменений, возможно, сопоставление с конкретным попаданием в memcache). темп). Вы, вероятно, должны сравнить с вашими данными из реальной жизни. Вы, вероятно, получите лучший ответ о переполнении стека, хотя я отмечаю ваш вопрос.

0 голосов
/ 16 мая 2011

filemtime будет быстрее, чем file_get_contents - но, согласно комментарию Кайла Смита, рассмотрение того, что вы предлагаете в целом, дополнительного кода и разницы в скорости чтения из дискового кэша ОС против memcache означает, что я буду очень удивлен если метод memcached измеримо быстрее и существует риск внесения функциональных дефектов с необходимым дополнительным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...