jeecgboot / JeecgBoot

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式,引入AI模型能力 OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
http://www.jeecg.com
Apache License 2.0
40.7k stars 14.85k forks source link

打包部署到生产环境读取数据字典比开发环境慢20多倍 #6520

Closed q060831 closed 1 year ago

q060831 commented 1 year ago

版本号:3.5.3

问题描述:

使用cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 vite build && esno ./build/script/postBuild.ts打包读取数据字典缓存比开发环境慢20多倍 使用cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build && esno ./build/script/postBuild.ts打包却没有这个问题 开发环境和生辰环境使用的是同一后台,打包后部署的生产环境是一样的

截图&代码: 开发环境: 开发环境

NODE_ENV=production: 生产环境

没有NODE_ENV=production: 没有NODE_ENV=production的生产环境

liaozhiyang commented 1 year ago

这是哪个方法?是读取本地缓存字典还是接口字典?能给出更详细的信息吗?

q060831 commented 1 year ago

调用的是这个getDictItemsByCode方法

q060831 commented 1 year ago

Dingtalk_20230810092629

q060831 commented 1 year ago

另附nginx的压缩配置:

Dingtalk_20230810095836

kieranwv commented 1 year ago

我也遇到了,生产环境很卡

q060831 commented 1 year ago

jeecgboot/JeecgBoot#6508 找到问题所在了,是调用缓存导致的,Persistent.getLocal每次调用都要200多毫秒,而使用Persistent.getSession则不会

zhangdaiscott commented 1 year ago

在性能方面,sessionStorage 和 localStorage 的速度基本上是相同的。 是不是因为线上开启加密导致的? image

q060831 commented 1 year ago

就是这个了 Dingtalk_20230830094853

q060831 commented 1 year ago

这怎么优化啊?

zhangdaiscott commented 1 year ago

抽个不加密的方法,针对字典这块调用不加密的方法