摘要:环境核内存开启性能监控使用生产环境命令进行安装统一执行打印框架执行时间内存最主要差异加载所有文件整理时间线整体执行时间时间改为加载如何动态加载可优化可优化为什么需要复制一份整理时间线整体执行时间时间加载所有文件,差异差异差异差异
环境
centos7 + docker(alpine3.7)
1核
内存2G
php7.1.17
开启opcache
性能监控tideways_xhprof
composer 使用生产环境命令进行安装
composer install --no-dev --optimize-autoloader --prefer-dist统一执行 vension 打印
框架 | 执行时间 | 内存 |
---|---|---|
lumen | 8ms | 0.4MB |
lumen + Facades | 8.5ms | 0.5MB |
lumen + Facades + Eloquent | 13ms~14ms | 0.8MB |
laravel | 50ms~60ms | 1.6MB |
加载所有config文件:6.711ms
Provider register: 5.756ms
Provider boot: 8.048ms
Route Middleware: 9.084ms
terminateMiddleware: 4.068ms
lumen + Facades + Eloquent 整理时间线
整体
执行时间: 13.284ms
cpu时间: 13.1ms
public/index.php
bootstrap/app.php
vendor/autoload.php: 0.617ms
Dotenv load: 1.882ms 改为php加载
Application::__construct: 0.674ms
withFacades: 0.455ms
withEloquent: 5.144ms 如何动态加载?
loadComponent database: 4.931ms
configure: 0.5ms ==可优化==
DatabaseServiceProvider
register: 0.684ms
boot: 0.981ms
PaginationServiceProvider
register: 0.167ms
boot: 2.115ms 可优化
Router::group: 0.215ms
Application::run: 3.758ms
dispatch: 3.479ms
parseIncomingRequest: 2.643ms
Request::capture: 2.007ms
Request::createFromGlobals: 0.984ms
Request::createRequestFromFactory: 0.947ms
Request::initialize: 0.982ms
Request::createFromBase: 1.005ms
Request::duplicate: 0.789ms 为什么需要复制一份?
sendThroughPipeline: 0.826ms
Response::send: 0.263ms
laravel 整理时间线
整体
执行时间:54.3ms
CPU时间:53.2ms
public/index.php
vendor/autoload.php: 0.926ms
bootstrap/app.php
Application::__construct: 1.471ms
registerBaseServiceProviders: 0.708ms
make Kernel: 1.3ms
Request::capture: 1.841ms
kernel::handle: 43.308ms
Kernel::sendRequestThroughRouter: 43.117ms
bootstrap: 28.188ms
Application::bootstrapWith: 28.175ms
LoadEnvironmentVariables::bootstrap: 4.372ms
Dotenv::load: 4.212ms
LoadConfiguration::bootstrap: 6.711ms 加载所有config文件,差异
RegisterFacades::bootstrap: 0.587ms
RegisterProviders::bootstrap: 5.657ms Provider register 差异
Collection::partition: 0.8ms
ProviderRepository::load: 4.250ms
IlluminateAuthAuthServiceProvider
IlluminateCookieCookieServiceProvider
IlluminateDatabaseDatabaseServiceProvider
IlluminateEncryptionEncryptionServiceProvider
IlluminateFilesystemFilesystemServiceProvider
IlluminateFoundationProvidersFoundationServiceProvider
IlluminateNotificationsNotificationServiceProvider
IlluminatePaginationPaginationServiceProvider
IlluminateSessionSessionServiceProvider
IlluminateViewViewServiceProvider
FideloperProxyTrustedProxyServiceProvider
AppProvidersAppServiceProvider
AppProvidersAuthServiceProvider
AppProvidersEventServiceProvider
AppProvidersRouteServiceProvider
BootProviders::bootstrap: 8.048ms Provider boot 差异
array_walk: 7.793ms
Pipeline::then: 14.690ms
Router::dispatch: 12.202ms
findRoute: 1.754ms
runRoute: 10.434ms
runRouteWithinStack: 9.084ms Middleware 差异
Pipeline::then: 8.586ms
prepareResponse: 2.220ms
prepare: 1.6ms
Response::send: 0.591ms
Kernel::terminate: 4.068ms
Kernel::terminateMiddleware: 4.056ms
StartSession::terminate: 0.915ms
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31387.html
摘要:的现状目前是版本,是基于开发。入口文件启动文件和配置文件框架的入口文件是。在路由中指定控制器类必须写全命名空间,不然会提示找不到类。目前支持四种数据库系统以及。使用时发生错误,因为在文件中,的默认驱动是。 最近使用 Lumen 做了 2 个业余项目,特此记录和分享一下。 Lumen 的介绍 在使用一项新的技术时,了解其应用场景是首要的事情。 Lumen 的口号:为速度而生的 La...
摘要:配置项用于配置失败队列任务存放的数据库及数据表。要使用队列驱动,需要在配置文件中配置数据库连接。如果应用使用了,那么可以使用时间或并发来控制队列任务。你可以使用命令运行这个队列进程。如果队列进程意外关闭,它会自动重启启动队列进程。 一、概述 在Web开发中,我们经常会遇到需要批量处理任务的场景,比如群发邮件、秒杀资格获取等,我们将这些耗时或者高并发的操作放到队列中异步执行可以有效缓解系...
摘要:如何做用户认证根据文档描述,提供用户认证的接口,他的核心是看守器和提供器,看守器定义怎么认证用户,提供器定义怎么检索用户。 最近的一个PHP项目,上一个项目是采用ThinkPHP来弄的,因为很早就听说过Laravel的大名,所以进了Laravel的官网,意外发现了Lumen,正好我项目是提供API的,所以选择了Lumen,因为是Laravel的精简版,看了几天的Laravel文档,也总...
阅读 2216·2021-08-23 09:46
阅读 890·2019-08-29 18:31
阅读 1835·2019-08-29 17:04
阅读 2427·2019-08-29 12:23
阅读 1836·2019-08-26 14:05
阅读 1056·2019-08-26 13:44
阅读 3112·2019-08-26 12:23
阅读 2166·2019-08-26 10:46