Например, вместо include($file) использовать eval('?'.'>'.file_get_contents($file).'<'.'?')
Или Вы имели в виду, что нужно избавиться от fopen/fgets/fclose и заменить на foreach (explode('\n', file_get_contents($file)) as $line)?
С последним, пожалуй, соглашусь, разница, наверное, будет.
Старался по минимуму использовать PHP-wrapper'ы для работы с файлами, только там, где это действительно необходимо. А на оптимизацию работы с файловой системой на уровне ядра PHP большинство людей повлиять не могут, поэтому она не оценивалась.
1000 последовательных запусков для каждого из алгоритмов.
Все тесты вместе перезапускал несколько десятков раз, чтобы проверить, что загрузка сервера не влияет на результаты. Результаты по времени между запусками отличались на незначимую величину :-)
Чтение конфигов, по сути, редко является узким местом. Есть и более «узкие» места в скриптах.
Расскажите, пожалуйста, как Вы делаете диаграммы?
Я 90% времени в консоли, и, к стыду своему, не знаю, как это делается :-)
В 99% случаев использую json_encode :-)
Но большинство реализаций с константами выглядят примерно так (схема главного скрипта):
include конфиг;
include классы x 10;
include коннект к базе данных;
константы при этом встречаются только в инклюдах в главном скрипте и в коннекте к базе данных. Вопрос: а смысл было их делать глобальными?
Хотя реализации, повторю, могут отличаться
Или Вы имели в виду, что нужно избавиться от fopen/fgets/fclose и заменить на foreach (explode('\n', file_get_contents($file)) as $line)?
С последним, пожалуй, соглашусь, разница, наверное, будет.
Методы парсинга данных средствами PHP, по идее, должны быть сравнимы с разбором текстовых файлов или даже медленнее.
А у Вас какие настройки кэширования данных PHP? Имеется ли какой-либо оптимизатор?
Если интересно, то
Intel Core2Duo 3000 GHz
Memory 4GB 800 MHz
2x Western Digital RE3 RAID1
Все тесты вместе перезапускал несколько десятков раз, чтобы проверить, что загрузка сервера не влияет на результаты. Результаты по времени между запусками отличались на незначимую величину :-)
Или в другой блог перенести?
Спасибо Вам за это :-)
Беглый взгляд показывает, что если убрать "$" и заменить "->" и "::" на ".", то получится неплохой пример на Java