讨论数量:
你这样说的就很大了 比如可以msql可以有些数据变成es查询 同步处理的东西用mq处理变成异步 fpm框架更换swoole hyperf 换成协程框架 mysql更换读写分离 多住多从 , 如果可以改为微服务再次提高 不过php微服务太少
老项目改造我做得不少,看回复你们旧项目用的是CI,这东西应该很旧了。 但大体的php老应用优化思路应该接近。 如果想从代码层提高性能,可以尝试:
- 引入composer,减少代码量。这一步很简单同时收益很大。注意在 composer.json 中声明好你们的php版本等环境信息,防止引入一些太新版本的lib。
- 删除重复代码。具体可以使用phpcpd或者phpstorm inspect来检查,前期先删除重复代码,可以大量减少后续的优化工作。
- 搞清楚哪里慢。CI项目我不太了解要怎么处理,如果框架内没Hooks/事件订阅这种机制,应该要自己去魔改框架。可以尝试在框架、控制器、服务相关地方补充下打log逻辑,我建议用symfony/stopwatch。
- 知道哪里慢就好搞了。如果对于系统内一些地方不满意,可以适当在这里对部分进行重构。一般,php应用慢大概率都是数据库查询相关的问题。。。
对于旧项目,除非十分十分有把握(你是老板并且不缺钱、老板亏钱你能哄等等),要不千万别整个重构。旧项目的重构风险必然大于收益的,技术人员不应该自己去决定这种技术成本的决策工作。 最后,任何swoole系的项目,都不可能保证你顺利将fpm引用迁移到swoole/swow生态。workerman/webman稍微好点,但一样没有fpm稳定。别搞。
推荐文章: