Symfony Надобность bootstrap.php.cache и apc loader в php55

hell0w0rd

Продвинутый новичок
Я так понимаю apc вообще не работает в 5.5, поэтому вот это:
PHP:
$loader = new ApcClassLoader('rsol_seo', $loader);
$loader->register(true);
Уже точно не нужно.
А вот нужен ли bootstrap.php.cache?
 

Redjik

Джедай-мастер
apcu для хранения User Data можно
ибо zend opcache не хранит, но я переключился на memcache
 

hell0w0rd

Продвинутый новичок
@Redjik да, я тоже подключил memcache в качестве кешера, а что на счет bootstrap.php.cache?
 

artoodetoo

великий и ужасный
Еще г-н Котеров показал, что положительный эффект кешера усиливается, если кучу файлов слить в один.
Непонятно почему бы правилу не действовать для PHP 5.5
 

hell0w0rd

Продвинутый новичок
artoodetoo, да хотя бы потому что я не верю тестам 5-летней давности. PHP и кешеры опкода не стояли на месте. Теперь в php кешер встроен, привет из настоящего)
 

weregod

unserializer
artoodetoo, а если у меня 100500 классов, сколько памяти сожрётся PHP-ой для их парса, пусть даже с оптимизацией через опкэшеры?
 

artoodetoo

великий и ужасный
artoodetoo, да хотя бы потому что я не верю тестам 5-летней давности. PHP и кешеры опкода не стояли на месте. Теперь в php кешер встроен, привет из настоящего)
вы полагаете кешеры стали хуже, или что-то принципиально изменилось в файловых системах?

p.s. да, было бы здо́рово, чтобы склейки устарели! только сфигали нам так повезет — непонятно. нет показаний.
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
artoodetoo, я полагаю что нормальный кешер должен в памяти держать ассоциативный массив файл => время изменения и перехватывать подключение файла. То есть по сути весь оверхед состоит в поиске по aссоциативному массиву названия файла, а если это так - склейка является микро-недооптимизацией
 

artoodetoo

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

склейка не сводится к ускорению файловых операций. есть расходы на управление памятью, установление scope и т.д.
очевидно пхп-шный инклуд работает несколько сложнее чем сишный, я для себя так оправдываю этот оверхед и этот профит от склейки.
 
Последнее редактирование:

hell0w0rd

Продвинутый новичок
artoodetoo, если честно я бы хотел увидеть тесты, а не догадки)
А чего там может быть сложного? Подключает файл, вызывает получение опкода, исполняет опкод - все
 

Вурдалак

Продвинутый новичок
В APC, например, в зависимости от apc.stat дёргается на каждый файл stat, либо просто is_file (тут возможно не сам APC проверяет наличие, но факт: от этого не уйти). В итоге речь идёт о том насколько дорого будет выполнить stat/is_file для всех требуемых классов. Очевидно, что таких файлов будет на порядок меньше, чем в тесте Котерова: он-то все классы ZF подключает, а в реальности такого не бывает.
 

artoodetoo

великий и ужасный
artoodetoo, если честно я бы хотел увидеть тесты, а не догадки)
А чего там может быть сложного? Подключает файл, вызывает получение опкода, исполняет опкод - все
LOL. то есть я должен доказать правоту Котерова, Potencier и прочих Que.
я то думал это вы «разрушитель легенд» :)

лично я консервативен. пока не доказано обратное, буду думать, что революции не было.
 

hell0w0rd

Продвинутый новичок
artoodetoo, ну и зря. Данные полугодичной давности стоило бы проверять.
Я не уверен что тест честный, возможно не хватило памяти у опкод кешера просто, но вариант с одним файлом на 1000 классов выигрывает у автолоадера с хешем класс => путь в 10 раз(100мс против 10).
Проверялось class_exists($classname), все классы содержали разный(относительно) код, 1 переменную, сеттер, геттер и конструктор (прокси к сеттеру)
можно прикрыть тему) на ближайшие пол года все ясно:)
 
Сверху