Производительность 3.1 vs 3.0.*

Обсуждение дорелизных версий phpBB 4.0-dev - установки, миграции (конвертирования) с версий phpBB 2.0, 3.0, 3.1, 3.2 и 3.3, нюансов русского перевода.
Поддержка дорелизных версий не осуществляется.
Аватара пользователя
rxu
Сообщения: 1125
Зарегистрирован: 21 янв 2014, 21:20
Откуда: Krasnoyarsk
Github repo: https://github.com/rxu
Контактная информация:

Re: Производительность 3.1 vs 3.0.*

Сообщение rxu »

Если посмотреть с другой стороны, 11-12 МБ для сервера - ни о чем.

Xisp
Сообщения: 155
Зарегистрирован: 02 фев 2014, 12:38

Re: Производительность 3.1 vs 3.0.*

Сообщение Xisp »

Как я говорил, исчерпание памяти- самая частая ошибка у меня. Можно говорить про разные хостинги и тому подобное, но лучше меньше, чем больше ;)
Впрочем, посмотрим, вдруг до релиза оптимизируют.
Надо бы самому посмотреть, что же там память кушает.
Интересно, а два запроса в таблицу Уведомлений на каждую страницу так сильно нужны?

Аватара пользователя
rxu
Сообщения: 1125
Зарегистрирован: 21 янв 2014, 21:20
Откуда: Krasnoyarsk
Github repo: https://github.com/rxu
Контактная информация:

Re: Производительность 3.1 vs 3.0.*

Сообщение rxu »

Xisp писал(а):два запроса в таблицу Уведомлений на каждую страницу так сильно нужны?
А какие другие варианты отобрать новые уведомления?

Xisp
Сообщения: 155
Зарегистрирован: 02 фев 2014, 12:38

Re: Производительность 3.1 vs 3.0.*

Сообщение Xisp »

rxu писал(а):А какие другие варианты отобрать новые уведомления?
Поэтому я и спросил :)
Думал, может одним обойтись.
Ну да ладно, система уведомлений легко отключается.

Аватара пользователя
rxu
Сообщения: 1125
Зарегистрирован: 21 янв 2014, 21:20
Откуда: Krasnoyarsk
Github repo: https://github.com/rxu
Контактная информация:

Производительность 3.1 vs 3.0.*

Сообщение rxu »

Теперь в футере показано время генерации страницы в рабочем режиме, т.е. с выключенным DEBUG (функция появится в бета5).

Аватара пользователя
rxu
Сообщения: 1125
Зарегистрирован: 21 янв 2014, 21:20
Откуда: Krasnoyarsk
Github repo: https://github.com/rxu
Контактная информация:

Производительность 3.1 vs 3.0.*

Сообщение rxu »

А если навести курсор мыши на время генерации, можно увидеть расшифровку времени SQL/PHP. Этой фичи пока нет в ядре, но, думаю, будет в бете5 ;)

Xisp
Сообщения: 155
Зарегистрирован: 02 фев 2014, 12:38

Производительность 3.1 vs 3.0.*

Сообщение Xisp »

Если ещё в Explain будет показывать использование памяти, будет вообще замечательно!

Xisp
Сообщения: 155
Зарегистрирован: 02 фев 2014, 12:38

Re: Производительность 3.1 vs 3.0.*

Сообщение Xisp »

ostridm писал(а):под виндусом есть тулза которая позволяет посмотреть что читает процесс, мой php начитывал для 3.1 порядка 30-40 файлов то ли для индекса толи для вьютопика точн оне помню, малось удручает
Сейчас взял и проверил функцией get_included_files(). Результат заставил шевелиться волосы во всех, даже труднодоступных местах и областях без волос вообще.
Главная phpBBex- 21
Главная phpBB 3.1- 170
Список форумов - 200.
Сначала я правда погонял дебагер, но как- то не поверил, что на каждый из 151 вызовов функции Composer\Autoload\ClassLoader->loadClass ищется и подключается файл.
Вот какие рисунки нарисовал мне дебагер по 90% самых медленных функций:
3.0
Изображение
3.1
Изображение

Отправлено спустя 0 часов 19 минут 10 секунд:
Производительность 3.1 vs 3.0.*
Жаль спойлера тут нет. Список подключаемых файлов для главной:

Код: Выделить всё

/www/index.php
/www/common.php
/www/includes/startup.php
/www/vendor/autoload.php
/www/vendor/composer/autoload_real.php
/www/vendor/composer/ClassLoader.php
/www/vendor/composer/autoload_namespaces.php
/www/vendor/composer/autoload_psr4.php
/www/vendor/composer/autoload_classmap.php
/www/config.php
/www/phpbb/class_loader.php
/www/includes/functions.php
/www/includes/functions_content.php
/www/includes/functions_container.php
/www/includes/functions_compatibility.php
/www/includes/constants.php
/www/includes/utf/utf_tools.php
/www/phpbb/db/driver/mysqli.php
/www/phpbb/db/driver/mysql_base.php
/www/phpbb/db/driver/driver.php
/www/phpbb/db/driver/driver_interface.php
/www/phpbb/di/extension/config.php
/www/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DependencyInjection/Extension.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/Extension.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ExtensionInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Extension/ConfigurationExtensionInterface.php
/www/phpbb/di/extension/core.php
/www/phpbb/di/extension/ext.php
/www/phpbb/di/pass/collection_pass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CompilerPassInterface.php
/www/phpbb/di/pass/kernel_pass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerBuilder.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Container.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/IntrospectableContainerInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ContainerInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/TaggedContainerInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/ParameterBagInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/Compiler.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveParameterPlaceHoldersPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckDefinitionValidityPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ResolveInvalidReferencesPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/AnalyzeServiceReferencesPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatablePassInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckCircularReferencesPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckReferenceValidityPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemovePrivateAliasesPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveAbstractDefinitionsPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ReplaceAliasByActualDefinitionPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RepeatedPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/RemoveUnusedDefinitionsPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraph.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/LoggingFormatter.php
/www/vendor/symfony/config/Symfony/Component/Config/Resource/FileResource.php
/www/vendor/symfony/config/Symfony/Component/Config/Resource/ResourceInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Loader/FileLoader.php
/www/vendor/symfony/config/Symfony/Component/Config/Loader/FileLoader.php
/www/vendor/symfony/config/Symfony/Component/Config/Loader/Loader.php
/www/vendor/symfony/config/Symfony/Component/Config/Loader/LoaderInterface.php
/www/vendor/symfony/config/Symfony/Component/Config/FileLocator.php
/www/vendor/symfony/config/Symfony/Component/Config/FileLocatorInterface.php
/www/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
/www/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Definition.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Reference.php
/www/phpbb/event/kernel_request_subscriber.php
/www/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventSubscriberInterface.php
/www/phpbb/event/kernel_exception_subscriber.php
/www/phpbb/event/kernel_terminate_subscriber.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphNode.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Compiler/ServiceReferenceGraphEdge.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/ParameterBag/FrozenParameterBag.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/Dumper.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/DumperInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/NullDumper.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php
/www/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Variable.php
/www/phpbb/cache/driver/file.php
/www/phpbb/cache/driver/base.php
/www/phpbb/cache/driver/driver_interface.php
/www/includes/compatibility_globals.php
/www/phpbb/config/db.php
/www/phpbb/config/config.php
/www/phpbb/cache/service.php
/www/phpbb/event/dispatcher.php
/www/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/ContainerAwareEventDispatcher.php
/www/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcher.php
/www/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/EventDispatcherInterface.php
/www/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/KernelEvents.php
/www/phpbb/request/request.php
/www/phpbb/request/request_interface.php
/www/phpbb/request/type_cast_helper.php
/www/phpbb/request/type_cast_helper_interface.php
/www/phpbb/request/deactivated_super_global.php
/www/phpbb/user.php
/www/phpbb/session.php
/www/phpbb/auth/auth.php
/www/phpbb/log/log.php
/www/phpbb/log/log_interface.php
/www/phpbb/symfony_request.php
/www/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Request.php
/www/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ParameterBag.php
/www/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/FileBag.php
/www/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/ServerBag.php
/www/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/HeaderBag.php
/www/phpbb/filesystem.php
/www/phpbb/path_helper.php
/www/phpbb/extension/manager.php
/www/phpbb/lock/flock.php
/www/phpbb/di/service_collection.php
/www/phpbb/event/extension_subscriber_loader.php
/www/phpbb/di/service_collection_iterator.php
/www/phpbb/template/context.php
/www/phpbb/template/twig/twig.php
/www/phpbb/template/base.php
/www/phpbb/template/template.php
/www/phpbb/template/twig/loader.php
/www/vendor/twig/twig/lib/Twig/Loader/Filesystem.php
/www/vendor/twig/twig/lib/Twig/LoaderInterface.php
/www/vendor/twig/twig/lib/Twig/ExistsLoaderInterface.php
/www/phpbb/template/twig/environment.php
/www/vendor/twig/twig/lib/Twig/Environment.php
/www/vendor/twig/twig/lib/Twig/Extension/Core.php
/www/vendor/twig/twig/lib/Twig/Extension.php
/www/vendor/twig/twig/lib/Twig/ExtensionInterface.php
/www/vendor/twig/twig/lib/Twig/Extension/Escaper.php
/www/vendor/twig/twig/lib/Twig/Extension/Optimizer.php
/www/vendor/twig/twig/lib/Twig/Extension/Staging.php
/www/phpbb/template/twig/extension.php
/www/phpbb/template/twig/lexer.php
/www/vendor/twig/twig/lib/Twig/Lexer.php
/www/vendor/twig/twig/lib/Twig/LexerInterface.php
/www/vendor/twig/twig/lib/Twig/TokenParserBroker.php
/www/vendor/twig/twig/lib/Twig/TokenParserBrokerInterface.php
/www/vendor/twig/twig/lib/Twig/SimpleFilter.php
/www/vendor/twig/twig/lib/Twig/SimpleFunction.php
/www/vendor/twig/twig/lib/Twig/SimpleTest.php
/www/vendor/twig/twig/lib/Twig/TokenParser/For.php
/www/vendor/twig/twig/lib/Twig/TokenParser.php
/www/vendor/twig/twig/lib/Twig/TokenParserInterface.php
/www/vendor/twig/twig/lib/Twig/TokenParser/If.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Extends.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Include.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Block.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Use.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Filter.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Macro.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Import.php
/www/vendor/twig/twig/lib/Twig/TokenParser/From.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Set.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Spaceless.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Flush.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Do.php
/www/vendor/twig/twig/lib/Twig/TokenParser/Embed.php
/www/vendor/twig/twig/lib/Twig/ExpressionParser.php
/www/vendor/twig/twig/lib/Twig/TokenParser/AutoEscape.php
/www/vendor/twig/twig/lib/Twig/NodeVisitor/Escaper.php
/www/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
/www/vendor/twig/twig/lib/Twig/NodeVisitor/SafeAnalysis.php
/www/vendor/twig/twig/lib/Twig/NodeVisitor/Optimizer.php
/www/phpbb/template/twig/tokenparser/defineparser.php
/www/phpbb/template/twig/tokenparser/includeparser.php
/www/phpbb/template/twig/tokenparser/includejs.php
/www/phpbb/template/twig/tokenparser/includecss.php
/www/phpbb/template/twig/tokenparser/event.php
/www/phpbb/template/twig/tokenparser/includephp.php
/www/phpbb/template/twig/tokenparser/php.php
/www/includes/hooks/index.php
/www/phpbb/hook/finder.php
/www/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Event.php
/www/includes/functions_display.php
/www/phpbb/auth/provider_collection.php
/www/phpbb/passwords/helper.php
/www/phpbb/passwords/manager.php
/www/phpbb/passwords/driver/helper.php
/www/phpbb/passwords/driver/bcrypt.php
/www/phpbb/passwords/driver/base.php
/www/phpbb/passwords/driver/driver_interface.php
/www/phpbb/passwords/driver/bcrypt_2y.php
/www/phpbb/passwords/driver/bcrypt_wcf2.php
/www/phpbb/passwords/driver/salted_md5.php
/www/phpbb/passwords/driver/phpass.php
/www/phpbb/passwords/driver/convert_password.php
/www/phpbb/passwords/driver/sha1_smf.php
/www/phpbb/passwords/driver/sha1_wcf1.php
/www/phpbb/passwords/driver/sha1.php
/www/phpbb/passwords/driver/md5_phpbb2.php
/www/phpbb/passwords/driver/md5_mybb.php
/www/phpbb/passwords/driver/md5_vb.php
/www/phpbb/auth/provider/db.php
/www/phpbb/auth/provider/base.php
/www/phpbb/auth/provider/provider_interface.php
/www/phpbb/event/data.php
/www/language/ru/common.php
/www/language/ru/viewforum.php
/www/phpbb/content_visibility.php
/www/phpbb/datetime.php
/www/phpbb/user_loader.php
/www/phpbb/notification/manager.php
/www/phpbb/avatar/manager.php
/www/phpbb/avatar/driver/gravatar.php
/www/phpbb/avatar/driver/local.php
/www/phpbb/avatar/driver/driver.php
/www/phpbb/avatar/driver/driver_interface.php
/www/phpbb/avatar/driver/remote.php
/www/phpbb/avatar/driver/upload.php 
Тупой вопрос- что тут делает gravatar.php, когда они отключены? Да и остальные... Тупо инклюдит сотни файлов про запас. Да уж... Придётся основательно взяться за переделывание.

Ответить