减少Axapta 2012表单中的用户对象
我们注意到,对于定制的Ax表单,保留了大约1500-2000个用户对象。最终用户通常会多次打开此表单,并根据用户对象限制快速运行 我开始使用sysinternaltools、GDIViewer以及可能导致此表单被许多资源使用的原因。从我的搜索中,我得出结论,大多数句柄都花在虚拟内存私有、虚拟内存图像和字体上 现在,我跑得有点卡住了。我希望找到关于哪些表单控件请求所有这些资源的线索。但我似乎无法将用户对象句柄链接到表单控件或对象 我的问题:如何确定哪些Ax窗体控件和用户对象句柄是关联的?如果不可能,如何调试/跟踪/查看/跟踪哪个表单元素生成最多句柄减少Axapta 2012表单中的用户对象,axapta,microsoft-dynamics,dynamics-ax-2012,Axapta,Microsoft Dynamics,Dynamics Ax 2012,我们注意到,对于定制的Ax表单,保留了大约1500-2000个用户对象。最终用户通常会多次打开此表单,并根据用户对象限制快速运行 我开始使用sysinternaltools、GDIViewer以及可能导致此表单被许多资源使用的原因。从我的搜索中,我得出结论,大多数句柄都花在虚拟内存私有、虚拟内存图像和字体上 现在,我跑得有点卡住了。我希望找到关于哪些表单控件请求所有这些资源的线索。但我似乎无法将用户对象句柄链接到表单控件或对象 我的问题:如何确定哪些Ax窗体控件和用户对象句柄是关联的?如果不可能
<?xml version="1.0" encoding="UTF-8"?>
<root>
<obj>
<type>Brush</type>
<count>276</count>
</obj>
<obj>
<type>Font</type>
<count>1762</count>
</obj>
<obj>
<type>Region</type>
<count>47</count>
</obj>
<obj>
<type>Bitmap</type>
<count>82</count>
</obj>
<obj>
<type>DC</type>
<count>78</count>
</obj>
<obj>
<type>Palette</type>
<count>2</count>
</obj>
<obj>
<type>Virtual Memory Shared</type>
<count>69</count>
</obj>
<obj>
<type>Virtual Memory Private</type>
<count>3020</count>
</obj>
<obj>
<type>Virtual Memory Mapped</type>
<count>34</count>
</obj>
<obj>
<type>Virtual Memory Image</type>
<count>2424</count>
</obj>
</root>
刷子
276
字体
1762
区域
47
位图
82
直流
78
调色板
2.
虚拟内存共享
69
虚拟内存专用
3020
虚拟内存映射
34
虚拟内存映像
2424
听起来您的自定义表单需要重构,或者您的用户需要更多内存。顺便说一句,您没有指定正在使用哪个版本的AX
要回答有关查找表单上所有控件的问题,请执行以下操作:
您可以使用类似的方法来转储表单上的所有控件,或者将其放入表单的run()
方法中,并将其修改为与活动表单一起使用,以提供控件列表……但我不确定您为什么要这样做
在我看来,您需要一名开发人员来查看一些自定义对象是如何设计的,以及它们是否占用了太多内存。表单中包含了Microsoft.Dynamics.HierarchyViewerWPF.HierarchyView。我认为用户对象是由它引起的。但我需要证明这一点。