Intereting Posts
вставка нескольких строк в базу данных на codeigniter Удаление любого существующего файла из Dropzone показывает dictDefaultMessage Как получить URI абсолютного изображения с SimpleHTMLDom Сортировка 5-мерного массива по дате в 5-м измерении с использованием php? Расширение PHP GD без повторной компиляции PHP-решения Сохранить изображение профиля facebook с помощью cURL POST с использованием CURL в PHP дает неверный запрос Ошибка синтаксический анализ / сканирование через файл размером 17 гб Как получить имя пользователя в joomla 3.2 Лучший способ отключить несколько элементов массива Как получить подстроку на протяжении всего документа, зная маркеры? Медленность найдена при выборе и кодировании образа базы 64 из базы данных Продукт :: getProductsProperties (): 'id_image' возвращает 'en_default', а не изображение Удалить cookie из браузера? как вызвать функцию после завершения загрузки страницы

Производительность PHP parse_ini_file ()?

Я знаю, что некоторые люди хранят настройки в файле .ini и получают значения с помощью parse_ini_file() в PHP. Без проведения тестов мне интересно узнать о производительности.

Знаете ли вы, может ли кеш-код операции кэшировать любой из этих файлов, если параметры находятся в ini-файле?

Согласно этому старому сообщению в блоге, полученному из веб-архивов.

От самого быстрого до самого медленного:

  1. Сериализованные массивы
  2. Обычный PHP-код
  3. Файлы INI
  4. XML-файлы
  5. Файлы YAML

EDIT (08/02/2012)

Если на сервере имеется APC или другой ускоритель, простые PHP-файлы будут самыми быстрыми из-за того, что они будут обрабатываться только один раз и сохраняться в памяти для дальнейшего использования.

Для другой части вопроса: если кеш-код кэша кэширует ini-файлы. На момент написания моей версии PHP 5.3.5 кеш APC не делал этого в автоматическом режиме, но вы можете убедиться, что ini-файлы кэшируются APC, добавив функцию, подобную следующей, и используйте ее для разбора ini-файлов :

 function parse_ini_file_ext ($file, $sections = null) { ob_start(); include $file; $str = ob_get_contents(); ob_end_clean(); return parse_ini_string($str, $sections); } 

Затем ini-файлы кэшируются APC. Измеряется с помощью простого теста microtime, это также быстрее, чем чтение файлов ini напрямую.

Я всегда подозревал, что parse_ini_file идет медленно, и что хранение переменных в массивах в файлах PHP происходит быстрее. Но есть статья 2004 года, в которой говорится иначе:

И, наконец, мы тестируем сохранение параметров конфигурации в INI-файле или в файле PHP как ассоциативный массив. Мы обнаружили, что сохранение в INI-файле и использование parse_ini_file () быстрее, чем анализ файла PHP.

Я не буду полностью в это поверить, пока не испытаю это сам, когда подойду к нему некоторое время. Но статья (и журнал) выглядит достаточно прочной, чтобы ее воспринимали всерьез.

Встроенная функция parse_ini_file реализована в C. Это делает ее довольно быстрой.

Вы будете намного быстрее, если не будете кэшировать ini-файл. Все эксперты могут сказать, что это правда.