Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GWT中内存泄漏的可能原因是什么_Gwt - Fatal编程技术网

GWT中内存泄漏的可能原因是什么

GWT中内存泄漏的可能原因是什么,gwt,Gwt,有人能解释一下在开发模式和实时模式下使用GWT时发生内存泄漏的可能方式吗 我提出以下问题 正如在其中一个答案中找到的以下链接所示 它们主要处理小部件创建和浏览器事件。是否还有其他可能发生内存泄漏的块洞,例如在执行RPC时..使用许多渲染方法..等等???您列出的链接讨论了GWT如何避免浏览器已知的内存泄漏类型-在任何地方都没有引用dom元素或小部件的情况下,但浏览器仍然无法将其从内存中释放出来。您需要注意的唯一情况是,当您创建自己的小部件来容纳其他小部件时——在这种情况下,您需要注意在每个子

有人能解释一下在开发模式和实时模式下使用GWT时发生内存泄漏的可能方式吗

我提出以下问题

正如在其中一个答案中找到的以下链接所示


它们主要处理小部件创建和浏览器事件。是否还有其他可能发生内存泄漏的块洞,例如在执行RPC时..使用许多渲染方法..等等???

您列出的链接讨论了GWT如何避免浏览器已知的内存泄漏类型-在任何地方都没有引用dom元素或小部件的情况下,但浏览器仍然无法将其从内存中释放出来。您需要注意的唯一情况是,当您创建自己的小部件来容纳其他小部件时——在这种情况下,您需要注意在每个子部件上调用attach和detach方法。坚持使用已知良好的容器和面板将完全避免这种情况,并且永远不会直接调用attach或detach方法

除此之外,内存泄漏就像其他类型的开发一样——我们需要小心保存不再使用的东西的引用。我不同意链接问题中的一些答案——Java内存泄漏工具在帮助通过开发模式跟踪这些对象方面不是很好,因为它们考虑的是JVM和Java对象,而不是浏览器和JavaScript

相反,编译时将样式设置为PRETTY,并使用Chrome的Inspector之类的工具。这可以用来查看正在消耗内存的对象,并告诉它们什么在占用内存。该策略与任何其他堆分析工具(JProfiler、VisualVM等)相同。编写代码的标准规则也适用——如果您持有一个不需要的对象,请将其清空或从持有该对象的集合中移除。显然,如果你仍然需要它,就保留它——相反,更高层次的东西应该放弃它