Laravel 5 框架性能优化技巧

2018-06-22 05:31:11来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能。

接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论

1、配置缓存信息

使用laravel自带的artisan命令,将所有config里面的配置都缓存到一个文件里。

php artisan config:cache

所有缓存信息会被 bootstrap/cache/config.php 文件里,也可以用以下命令来删除该缓存信息:

php artisan config:clear

当配置信息修改的时候,一般直接执行 php artisan config:cache 即可,因为它会自动先执行 php artisan config:clear ,然后再执行 php artisan config:cache 。

 

2、路由信息缓存

当路由越来越多的时候,特别是在大型项目中,路由缓存的效果很明显。

php artisan route:cache

所有路由会被缓存到 bootstrap/cache/routes.php 文件里,如果要使用路由缓存,那么所有的路由就不能使用闭包即匿名函数的形式了。同样可以用

php artisan route:clear

清除路由缓存。

 

3、类映射加载优化

 optimize 命令把一些常用的类缓存到文件里,通过减少文件的加载,提升性能:

php artisan optimize --force

会生成 bootstrap/cache/packages.php 和 bootstrap/cache/services.php 两个文件。

在  production 环境中,参数 --force 不需要指定,文件就会自动生成。

要清除类映射加载优化,请运行以下命令:

php artisan clear-compiled

此命令会删除上面 optimize 生成的两个文件。

 注意:此命令要运行在  php artisan config:cache 后,因为  optimize  命令是根据配置信息(如:config/app.php 文件的 providers 数组)来生成文件的。

 

4、使用redis/memcached来储存session会话

每一个laravel请求都会产生session会话信息,默认使用file存储的方式,存在 storage/framework/sessions 文件里,可以再 config/session.php 里修改储存方式。

'driver' => 'redis',

 

5、使用专业的缓存驱动器

「缓存」是提高应用程序运行效率的法宝之一,默认缓存驱动是 file 文件缓存,建议切换到专业的缓存系统,如 Redis 或者 Memcached,不建议使用数据库缓存。

可以再配置文件 config/cache.php 里修改:

'default' => 'reids',

 

6、开启opcache

首先输入命令 php -m 查看有没有开启 OPcache 拓展。

如果已经开启,那么就可以开始配置php.ini。

// 开启opcache
opcache.enable=1
// 是否开启代码检测,开发环境中应不开启,然后可以写一个artisan命令去运行opcache_reset()方法去重启opcache缓存
opcache.validate_timestamps=0
// 如果开启代码检测,每隔多久检测一个代码是否改变
opcache.revalidate_freq=0
// 最大加速文件数,linux下可以通过find . -type f -print | grep php | wc -l命令查看项目有的文件数,该值应该大于项目下的文件数
opcache.max_accelerated_files=8000
// opcache预先申请的内存,用来存opcache缓存
opcache.memory_consumption=192
// 重启字符串缓冲区
opcache.interned_strings_buffer=16
// 这实际上是提供了一个更快的机制,在单个请求结束时调用代码中的解构器,以加快响应和回收php工作,以便更快地为下一个传入请求做好准备。
opcache.fast_shutdown=1

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ecshop数据表

下一篇:PHP 引用变量