我们的.Net 4.0应用程序有一个泄漏,导致它在长时间使用后崩溃.经过调查,我确定"用户对象"正在泄漏.User对象是一个Windows资源,如下所述:
http://msdn.microsoft.com/en-us/library/ms725486%28v=VS.85%29.aspx
Windows为每个进程分配10,000个用户对象.当应用程序运行时,其他窗口资源(如GDI对象和句柄)是不变的.
我发现了类似的C++问题,解决方案需要从微软研究中下载一个名为"绕道"的软件包 - 捕获?$ 10K.
使用Ant内存分析器,我是SUSPECT,它与菜单有关.我们正在使用SyncFusion中的菜单,因此通过查看代码无法找到与菜单相关的内容的生命周期.所以这可能是SynFusion必须解决的错误.
任何人都有使用SyncFusion菜单的类似泄漏?蚂蚁告诉我,一些PopupMenu对象仍然存在,但是Ants没有提供有关如何找到对象创建位置的信息(从而确定在哪里处理它们).
上面引用的SO帖子中提到的leakTrap/detours看起来很有趣,因为它似乎捕获了对USER对象分配的特定调用.
欢迎提出建议
使用a时JTree,DefaultMutableTreeNode可以设置a的"用户对象" .这可以是任何类型,但为了显示它,使用它的toString()值.这不是我需要的.
如何更改用户对象的显示方式?
注意:我的用户对象必须与a不同String,以便能够维护树和用户对象之间的映射.
我正在使用 JTree 创建树视图并将节点添加到其根,如下所示:
String nodeName = "node1";
DefaultMutableTreeNode child = new DefaultMutableTreeNode(nodeName);
root.add(child);
Run Code Online (Sandbox Code Playgroud)
现在UserObject,每个节点的类型为String。它显示"node1"为节点名称时,显示的树。
但是,我想添加UserObject到节点作为nodeObject具有 2 个属性的类的对象:
private class nodeObject{
private String nodeName;
private boolean isSomethingElse;
public nodeObject(String name, boolean something){
nodeName = name;
isSomethingElse = something;
}
public String getName(){
return nodeName;
}
//Other setter/getter after these code
}
Run Code Online (Sandbox Code Playgroud)
当我将此 nodeObject 添加到树节点时:
nodeObject nodeObject = new nodeObject("node1",true);
DefaultMutableTreeNode child = new DefaultMutableTreeNode(nodeObject);
root.add(child);
Run Code Online (Sandbox Code Playgroud)
它显示object ID为节点名称。我的问题是,如何设置节点名称nodeObject.getName()以便树可以显示 …
我有一个问题:在我的应用程序得到一些事件相关的信息,所以对于事件X我应该得到一个表格窗口,我做一些事情(输入一些文字,然后点击一个按钮)
我的问题是我的应用程序有10000用户对象的限制(如为所有的C#应用程序),和我现有的代码已经有3000所占用的用户对象(使叶片围绕7000用户对象免费).我从200个客户端收到有关每个客户端上发生的事情的信息.
当我从客户端收到有关事件的信息时,我想以某种方式在事件日志窗口中将其显示为标签,当我点击标签时,应弹出特定的窗体窗口(我之前提到过),以便我可以输入一些文字,然后点击一个按钮.
我需要能够有效地显示这个事件日志窗口(因为我可以从每个客户端接收多达1000个事件,如果此日志中的每个标签占用1个对象,这意味着每个客户端将有1000个对象(最大,但可能) )所以我会超过我10000的限制).
我怎样才能有效地做些什么呢?
目前,对于每个事件,我都会启动一个表单窗口,在其中我输入文本并单击按钮但这样效率不高(因为我的表单窗口占用了3个用户对象,如果我有最多3*200个客户端*1000个用户对象我超过到目前为止7000我的限制).
user-object ×5
c# ×2
java ×2
jtree ×2
swing ×2
.net ×1
memory-leaks ×1
nodename ×1
treemodel ×1
treenode ×1