对于我们基于SWT的应用程序,我们经常得到SWT错误“不再处理”。要检测问题是否在我们的代码中,如何检测 - 在我们的应用程序中使用代码 - 我们的应用程序实际使用了多少处理?
答案 0 :(得分:2)
如果我理解正确,您可能会遇到以下异常:
org.eclipse.swt.SWTError:不再处理
您可能正在创建未正确处理的资源(如字体,图像或GC对象)。您可能需要花点时间阅读SWT guide on Managing Operating System Resources.
为了确定是否确实如此,我可以推荐这篇有用的文章:Diagnosing Handle Leaks in SWT/RCP Windows Applications。
使用Sleak,它也是一种监控资源的方法。
答案 1 :(得分:1)
在Windows任务管理器的“进程”选项卡中,您可以添加“句柄”列,显示您的所有进程实时使用的句柄。
答案 2 :(得分:0)
巴兹' Sleak的提示给了我这个想法:
final DeviceData data = new DeviceData();
data.tracking = true;
display = new Display(data);
然后定期从
中记录数字final int handleCount = display.getDeviceData().objects.length
不幸的是,检测窗口小部件的数量(我猜他们也在使用句柄)是不可能的。