性能优化
优质
小牛编辑
146浏览
2023-12-01
imi 为性能做了以下努力:
- 框架核心运行时缓存
- 项目运行时缓存
- 热更新重启采用增量方式
- 数据库
Statement
复用 - 减少不必要的注入处理
使用框架核心运行时缓存
+热更新重启采用增量方式
,我们的实际项目原本重启需要 6 秒,现在只需几毫秒,提升可谓是巨大的。
使用项目运行时缓存
后,每次启动和热重启worker
进程时,硬盘读写压力不再巨大。
我们将持续为性能优化,为可靠性优化。
上面提到的框架核心运行时缓存
需要在开发时手动生成,并且如果更新框架需要手动进行清除并重新生成。
控制器单例
imi 的控制器默认是使用 clone
进行复用,所以你可以对控制器属性进行无压力的读写。
当然,一般来讲不需要属性读写,那我们可以把控制器设为单例。
方法1:控制器注解,@Controller(singleton=true)
,在 WS、TCP 中一样加入该属性即可。
方法2:在服务器配置中加入:
[
'controller' => [
'singleton' => true,
],
]