性能优化

优质
小牛编辑
146浏览
2023-12-01

imi 为性能做了以下努力:

  • 框架核心运行时缓存
  • 项目运行时缓存
  • 热更新重启采用增量方式
  • 数据库 Statement 复用
  • 减少不必要的注入处理

使用框架核心运行时缓存+热更新重启采用增量方式,我们的实际项目原本重启需要 6 秒,现在只需几毫秒,提升可谓是巨大的。

使用项目运行时缓存后,每次启动和热重启worker进程时,硬盘读写压力不再巨大。

我们将持续为性能优化,为可靠性优化。


上面提到的框架核心运行时缓存需要在开发时手动生成,并且如果更新框架需要手动进行清除并重新生成。

控制器单例

imi 的控制器默认是使用 clone 进行复用,所以你可以对控制器属性进行无压力的读写。

当然,一般来讲不需要属性读写,那我们可以把控制器设为单例。

方法1:控制器注解,@Controller(singleton=true),在 WS、TCP 中一样加入该属性即可。

方法2:在服务器配置中加入:

[
    'controller'    =>  [
        'singleton' => true,
    ],
]