在Chrome任务管理器中,我注意到我的应用程序使用了大约75,000k内存,这似乎有点高。是否有一种工具可以显示内存中的对象,以便我可以识别我在哪里滥用对象,甚至可能泄漏内存? 最佳答案 在ChromeDOM检查器中,您可以单击Profiles->Snapshot。它让您了解页面的内存映射、什么使用多少等等,包括引用计数和对象大小。 关于javascript-在javascript中查找内存使用的工具?,我们在StackOverflow上找到一个类似的问题:
我注意到我正在构建的应用程序中存在一些内存泄漏,在试用了一段时间后,FF将开始使用越来越多的内存(高达1000000k)。我做了一些研究,发现如果我做一个$(selector).html(somestuff)来替换一些东西的内容,jQuery处理程序从元素以前的内容将不会删除并导致一些问题,我已经修复了所有这些问题。我的问题是,如果我使用$(mydialog).dialog('destroy');销毁一个对话框,附加到该对话框中各种元素的处理程序是否会被删除?谢谢! 最佳答案 不,它们不会被删除,对话框元素本身将返回到它以前的状态,
关于用于防止内存泄漏的空赋值修复的性质,有人可以为我挠痒痒吗?我们都熟悉以下技术来阻止DOM对象和JS对象之间的循环引用,以防止内存泄漏:functionfoo(){varele=document.getElementById("someParagraphId");ele.onclick=function(){//someactionhere};ele=null;}问题是为什么上面的方法会起作用?将“ele”设置为null肯定会停止循环引用,但它不会也阻止将来对“ele”的引用吗?functionfoo(){varele=document.getElementById("somePar
我正在阅读这篇关于内存泄漏的文章(http://javascript.info/tutorial/memory-leaks#memory-leak-size),其中将此称为内存泄漏:functionf(){vardata="Largepieceofdata";functioninner(){return"Foo";}returninner;}JavaScriptinterpreterhasnoideawhichvariablesmayberequiredbytheinnerfunction,soitkeepseverything.IneveryouterLexicalEnvironme
我制作了一个包含许多小关卡的HTML5游戏。当玩家到达门口时,会加载另一个关卡。当一个关卡正在加载时,它基本上只是将所有实例数组设置为[],然后通过创建事物的新实例将内容插入其中,例如:enemies=[]//thishaspreviouslybeenfullofpointersfromtheoldlevelfor(i=0;i但是,我注意到仅仅设置一个充满指向[]的指针的数组并不会真正删除实例!那么,javascript会自动执行此操作吗?还是我必须自己删除每个实例? 最佳答案 如果数组中的对象不再被任何地方引用,那么它们将被垃圾回
我有一些javascript(与googlemapsapi一起使用),我正在IE和Chrome上进行测试,并且仅在IE中注意到内存泄漏症状:当我连续刷新页面时,IE中使用的内存量不断增长(快速),但在Chrome中它保持不变。在不发布所有代码的情况下(因为它相当长),我可以得到一些关于要注意什么的建议吗?什么会导致内存在IE中在页面刷新时像这样不断增长?就像我说的那样,我知道没有代码会很困难,但我想看看是否有任何通用建议首先起作用。谢谢。更新:感谢到目前为止的回复。作为完整性检查,我运行了googlemapsapi“HelloWorld”代码fromgoogle看看在IE中会发生什么(
我正在将一些相当大的数据集加载到firefox(500k左右)并使用它们绘制表格。Firefox正在使用多达400兆的内存。我如何判断Firefox是否正在泄漏内存,或者只是因为它可以而使用大量内存?是否有其他浏览器在不需要时会使用更少的内存?我觉得firefox会为自己占用大量内存,除非必须,否则不会释放它。很明显,我对一般内存管理的理解非常肤浅。 最佳答案 您可以在firefox中设置一个设置,强制它在最小化时释放尽可能多的内存:在网站url工具栏类型关于:配置满是文字的一页会出现。右键单击任意位置并选择新建->bool值对于名
我有一个网页在IE8和Firefox中都存在内存泄漏问题;WindowsProcessExplorer中显示的内存使用量随着时间的推移不断增长。以下页面请求“unplanned.json”url,这是一个永远不会改变的静态文件(尽管我确实将我的Cache-controlHTTPheader设置为no-cache以确保Ajax请求始终通过)。当它得到结果时,它会清除一个HTML表,遍历它从服务器返回的json数组,并为数组中的每个条目动态地向HTML表添加一行。然后等待2秒并重复此过程。这是整个网页:TestPagefunctionkickoff(){$.getJSON("unplann
我目前想知道是否有比通过参数'e'将this范围传递给lambda函数然后将其传递给'funkyFunction更好的解决方案'使用call()方法setInterval(function(e){e.funkyFunction.call(e)},speed,this)(撇开小问题:我一直在阅读有关javascript中内存泄漏的内容。lambda函数如何影响我的内存?首先定义它是否更好,如vari=function(e)。..然后将其作为参数传递给setInterval?) 最佳答案 我的情况可能有点不同,但我是这样做的:varse
我发现当手动断开套接字时,套接字并没有在套接字io服务器端被完全破坏。我找到了thistopicongithub有用。当我在寻找一些阻止GC清理套接字的变量链接时,我在这里问一个问题。如果这里有人遇到同样的问题,这会很有帮助。无效的代码:socket.on('disconnect',function(){socket.removeAllListeners();});///...................socket.disconnect();但是,使用受限库字段的解决方法:deleteio.sockets[url];io.j=[]; 最佳答案