| Всетаки не давала мне покоя эта тема.
До настоящего времени самый длинный файл внешних функций моего проекта занимал более 6000 строк, подключался в самом начале через require, основное содержание - запросы MySQL, множество таблиц под разные нужды.
Самый ресурсоемкий запрос с рекурсией на 4 уровня, SQL запросом и выводом таблицы HTML (код длинной 100 и более строк) занимал порядка 1.2 секунды, выполняясь на Pi3 700 МГц, ОЗУ 64 мега, винда WinME (не ржите- это для науки!), Апачь 1, MySQL 3.23, PHP 4.3.9. Естественно, что столь скромные аппаратные данные были взяты для увеличения масштада времени :-). База была заполнена на ~1% от номинала.
При смене машины на Pi4, 512 ОЗУ, Win XP SP2, софт тот же, результаты стали 0,2 сек.
Действия дальше:
Режу скрипт на функции и пишу их в одноименные файлы длинной от 100 до 450 строк.
Итог - на слабой машине сокращение времени обработки на 0.4 (!) секунды. На быстрой и пробовать не стал.
Дальнейшие тесты показали, что можно выиграть еще немного на грамотном создании индексов, как правило групповых. Выигрыш во времени обработки составил ~50% на слабой машине и ~35% на быстрой.
Вывод - пихать все, что можно в отдельные файлы и подключать по мере появления.
Если у кого-нить есть др. способы и наблюдения, думаю, это будет интересно многим :-). | |