我们知道node.js为我们提供了强大的力量,但强大的力量带来了巨大的责任.
据我所知,V8引擎不做任何垃圾收集.那么我们应该避免哪些最常见的错误,以确保没有内存从我的节点服务器泄漏.
编辑: 对不起我的无知,V8确实有一个强大的垃圾收集器.
jQuery中哪些标准问题或编码模式会导致内存泄漏?
我在StackOverflow上看到了一些与ajax()调用或jsonp或DOM删除相关的问题.大多数jQuery内存泄漏问题都集中在特定问题或浏览器上,在jQuery中列出标准内存泄漏模式会更好.
以下是关于SO的一些相关问题:
网上资源:
javascript performance jquery garbage-collection memory-leaks
检索适用于所有浏览器的XmlHttpRequest对象的最简单,最安全的方法是什么?没有任何额外的库.是否有经常使用的代码段?
PS我知道网上有很多例子,但这正是我要问的原因:有太多不同的例子,我只想要一些简单的东西,并证明是有用的.
jQuery和其他库不是一个选项. 为什么jquery泄漏内存如此糟糕?
我创建了一个每秒进行一次Ajax调用的网页.在Internet Explorer 7中,它严重泄漏内存(大约15分钟内20 MB).
该计划非常简单.它只运行一个JavaScript函数来进行Ajax调用.服务器返回一个空字符串,JavaScript代码不对其执行任何操作.我用它setTimeout来每秒运行一次这个功能,而我正在使用Drip来观察这个东西.
这是来源:
<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.4.2');
google.load('jqueryui', '1.7.2');
</script>
<script type="text/javascript">
setTimeout('testJunk()',1000);
function testJunk() {
$.ajax({ url: 'http://xxxxxxxxxxxxxx/test', // The url returns an empty string
dataType: 'html',
success: function(data){}
});
setTimeout('testJunk()',1000)
}
</script>
</head>
<body>
Why is memory usage going up?
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
怎么堵这个漏洞?我有一个真正的应用程序,以这种方式更新一个大表,但无人看管它将消耗千兆字节的内存.
编辑:好的,所以经过一些好的建议后,我将代码修改为:
<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.4.2');
google.load('jqueryui', '1.7.2');
</script>
<script type="text/javascript">
setTimeout(testJunk,1000);
function testJunk() {
$.ajax({ url: 'http://xxxxxxxxxxxxxx/test', …Run Code Online (Sandbox Code Playgroud)