2017-02-21 74 views
0

我們注意到,使用大約1500-2000的自定義Ax表格保留用戶對象。最終用戶通常會多次打開此表單並快速針對用戶對象限制運行。 (too many form are open...)減少Axapta 2012表格中的用戶對象

我開始使用SysInternal工具,GDIViewer和Bear查找什麼可能導致此表單用於許多資源。從我的搜索中,我得出結論:大多數句柄都用在虛擬內存專用,虛擬內存映像和字體上。

現在,我跑了有點卡住了。我希望找到哪些表單控件正在請求所有這些資源的線索。但我似乎無法將用戶對象句柄鏈接到表單控件或對象。

我的問題:如何識別哪個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> 
+0

Microsoft.Dynamics.HierarchyViewerWPF.HierarchyView包含在窗體中。我認爲用戶對象是由於它而造成的。但我需要能夠證明它。 – Reinard

回答

0

這聽起來像您的自定義表單需要重構或您的用戶需要更多的內存。你沒有指定你使用的是哪個版本的AX。

要回答你的問題要找到所有控件的形式:

AX2009 Loop through all the controls in the form on init

你可以使用類似的東西只是傾倒了所有控件的形式,或把它在形式的run()方法並修改它以與活動窗體一起使用以給出控件列表......但我不確定爲什麼要這樣做。

這聽起來像你需要一個開發人員來看看如何設計一些自定義對象,如果他們消耗太多的內存。