系统菜单树生成速度优化
来源:互联网 发布:网络推广书籍 百度经验 编辑:程序博客网 时间:2024/05/18 01:06
这几天在做系统权限树,可以给角色分配系统菜单进行权限管理。第一步生成系统菜单树,几天后,顺利建好菜单树。但是......过程需要两分钟,由于菜单很多,刚开始也就忍了。。。后来想了想,获取菜单树的递归过程不需要重复获取数据库连接,于是把获取数据库的连接设为成员变量初始化,此过程把速度提升到1分钟左右的速度。
1分钟的时间仍然很长,所有打算把菜单树获取之后放在session中,这样不必每次都去执行这个过程,只有第一次会耗时长一点。
做完这个之后,第二次之后时间在30s左右,但是为什么会有30s呢?应该执行的速度很快才对,因为是直接从session中取的嘛。debug发现,获取菜单的方法仍然被执行了一遍!!!仔细和第一次比较,发现第一次竟然执行了两遍!session中有了仍然执行获取!!大惑不解。
关于值栈!
ActionContext.getContext().put("sysMenuPrivTree", sysMenuPrivTree);
同时在js获取中,
var menuPrivTree =${sysMenuPrivTree};于是想,很可能是这里重复了一次!
观察struts值栈发现,在栈顶的是roleAction,于是恍然大悟。
值栈中roleAction中在栈顶,会首先在roleAction中找sysMenuPrivTree属性,但是因为action中恰好有getSysMenuPrivTree方法,所以会执行这个方法,而不是直接从Context中找!!!!
问题找到了,接下来将</pre><pre name="code" class="java">ActionContext.getContext().put("sysMenuPrivTree", sysMenuPrivTree);
改为
ActionContext.getContext().put("sysMenuTree", sysMenuPrivTree);
同时在js中,
var menuPrivTree =${sysMenuPrivTree};
改为
var menuPrivTree =${sysMenuTree};
这样在第二次执行时间是180ms左右!!满意了,第一次怎么优化再想吧~~~
0 0
- 系统菜单树生成速度优化
- web系统速度优化细节
- 系统优化之---分区表加速查询速度和删除速度
- 提高系统运行速度的优化方法
- 修改Android系统源代码,优化开机速度。
- Win7旗舰版系统右键菜单响应速度很慢 解决办法
- 系统架构 优化js的 优化web页面加载速度
- 优化系统服务提升Win7系统运行速度
- DedeCMS优化教程-提高后台文章静态生成速度
- QMenu 设置菜单图标 & 生成菜单树
- 优化Linux 系统服务来提高引导速度(全)
- 优化Linux 系统服务来提高引导速度
- 速度与性能·系统优化之道
- 优化ubuntu系统,加快开机速度和运行速度 (未实验,有些不见得对,搁置)
- DWZ 动态生成树菜单
- 权限管理系统中的根据用户角色动态生成用户权限菜单树
- maven导入及错误 cvs导入更新 myeclipse速度优化 myeclipse 右键菜单 add hibernate
- 菜单优化
- 折线分割平面
- linux vlan 配置
- 一次刨根问底的socket收包过程(Linux)
- 深入理解Android(07)——深入理解SystemServer
- Linux内核学习经验总结
- 系统菜单树生成速度优化
- 困扰无线水气表抄表的功耗问题浅谈
- merge into 语句的使用
- Monkey and Banana
- devstack安装错误一个“No module named MySQLdb”
- Akka学习笔记05--Actor的创建
- 10Gb Ethernet performance, tuning and functionality
- apache配置https协议访问
- Android事件总线 ( AndroidEventBus ) 框架学习