开发者社区> 问答> 正文

5分钟提高Laravel框架性能10倍以上? 400 报错

5分钟提高Laravel框架性能10倍以上? 400 报错

大家好, 这是我最近利用闲暇时间完成的方案,可能有点标题党的意思。实际上10倍是我各种应用测试的最差结果,因为包含了大量的数据库查询。单纯的框架性能,提升可以达到30倍。 而如果是简化的接口请求,性能相差更大。方案的核心思想已经在线上稳定运行超过3个月了。 因为希望能够简单地对laravel做一下优化,最近阅读理解了laravel5的大部分代码, 才算基本完成。 方案实现过程中出现了很多反复, 目前的方案可能也不够好, 希望对此感兴趣的朋友多多提意见。

项目的大概原理是:在框架资源初始化结束后再开启一个FastCGI服务,这样, 新的请求过来是直接从资源初始化结束后的状态开始,避免每次请求去做框架资源初始化的事情。

虽然是针对laravel, 实际上这个方案应该适用于所有性能不够优秀的框架。

项目地址: https://github.com/chefxu/stone
一个基于laravel5的使用例子:https://github.com/chefxu/stone-laravel-example

展开
收起
爱吃鱼的程序员 2020-06-04 15:17:06 705 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    swoole 是怎么处理内存泄漏的? ######

    引用来自“yak”的评论

    swoole 是怎么处理内存泄漏的?

    swoole本身并不存在内存泄露, 你说的是使用swoole后应用内存泄露吧? 
    简单粗暴的方法就是设定下每个进程处理请求的最大次数, 这样达到次数后进程就会自然销毁, 内存就会释放, 这样可以把内存占用控制在一定范围内。

    如果是打算查找内存泄露的问题, 就要看看哪些对象在请求结束后还被引用。 比如, 在laravel中, $cookie = Cookie::make('key', 'value') 会自动建立一个对象, 这个对象会被Facade, Application,以及程序调用的上下文引用。 程序退出后, Facade和Application中对于cookie的引用仍然存在, 如果不采取处理的话, 就会发生内存泄露。

    不过好在现在PHP这方面已经相当稳定, 只要小心处理, 不会有什么问题的。

    2020-06-04 16:20:06
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Web服务架构变化及性能优化 立即下载
如何做小程序性能优化 立即下载
Blade优化技术在广告计算中的应用优化 立即下载