使用windbg分析性能问题案例(大循环导致的性能问题)
问题描述
销售订单选择物料回填,1000行超过5分钟。
分析
抓取http数据,发现GetServiceFormState花费了5分钟。
监控数据库端未发现长时间的SQL,SQL执行数量属于合理范围。怀疑问题在应用服务器。
通过windbg进行调试,在执行过程中,每隔1分钟抓取堆栈信息,发现都在执行IsExistEntryField方法。
检查方法代码,发现有一个循环调用
检查方法中相关对象的情况
0:077> !objsize 000002327d8d6ad0 sizeof(000002327d8d6ad0) = 440 (0x1b8) bytes (Kingdee.BOS.JSON.JSONObject)--这个对象只有440字节,不存在问题
但发现JSONArray存储数量达到34636个,在最坏情况,循环将超过了3W次。
查看对象的引用关系
结论
通过上面代码,结合JSONArray的大小,说明问题代码如下。因为大量的循环,导致了性能问题。
使用windbg分析性能问题案例(大循环导致的性能问题)
问题描述销售订单选择物料回填,1000行超过5分钟。分析 抓取http数据,发现GetServiceFormState花费了5分钟。 监...
点击下载文档
本文2024-09-23 01:17:27发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-145000.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章