草庐IT

hadoop - Reducer 的堆内存不足

全部标签

在属性上使用 delete 时的 Javascript 对象内存管理

我目前正在编写一个node.js/socket.io应用程序,但这个问题是javascript的一般问题。我有一个关联数组,它为每个客户端连接存储一种颜色。请考虑以下事项:varclientColors=newArray();//Thisexecuteeachnewconnectionsocket.on('connection',function(client){clientColors[client.sessionId]="red";//Thisexecuteeachtimeaclientdisconnectclient.on('disconnect',function(){dele

javascript - 基于 promise 的函数的内存

如何内存一个基于promise的函数?函数的直接内存是否足够?functionfoo(){returnnewPromise((resolve,reject)=>{doSomethingAsync({success:resolve,fail:reject});});};这就够了吗?varfooMemoized=memoize(foo);注意:此问题已更新以删除延迟的反模式。 最佳答案 是的,这就足够了。Promises是简单的返回值,这是它们的巨大优势-与回调相比,后者的内存代码会很糟糕。如果您的promise库确实支持某种取消,您可

javascript - 如何在 ES5 Redux reducer 中初始化默认数据?

目前我还不能使用ES6/ES2015,我只能使用ES5来编写Reduxreducer。由于reducer的状态参数必须是不可变的,即使它是未定义的,我想出了以下模式:functionmyState(state,action){if(typeofstate==='undefined'){returnmyState({value1:'foo',value2:'bar'},action);}//actualstatecalculationhere}关于如何使用ES5确保默认值的任何替代建议或意见?编辑:经过一些问题和建议:我进行递归调用的原因是我非常重视“状态不可变”。因此,即使state参

javascript - 使用 socket.io 的内存泄漏

我发现当手动断开套接字时,套接字并没有在套接字io服务器端被完全破坏。我找到了thistopicongithub有用。当我在寻找一些阻止GC清理套接字的变量链接时,我在这里问一个问题。如果这里有人遇到同样的问题,这会很有帮助。无效的代码:socket.on('disconnect',function(){socket.removeAllListeners();});///...................socket.disconnect();但是,使用受限库字段的解决方法:deleteio.sockets[url];io.j=[]; 最佳答案

javascript - 使用 JQuery/JavaScript 导致内存泄漏的常见方法有哪些?

我的问题假设您正在创建一个将“长时间”显示的网页。我很好奇在这种情况下使用JQuery/JavaScript时会导致内存泄漏的一些常见问题是什么?例如,当您对元素集合调用$.remove()时,内存方面会发生什么情况?谢谢! 最佳答案 JavaScriptusesgarbagecollectiontoreclaimthememoryoccupiedbystrings,objects,arrays,andfunctionsthatarenolongerinuse.Thisfreesyou,theprogrammer,fromhavin

javascript - Chrome 在简单地添加和删除 SVG 元素时会泄漏内存

继续这个问题:Taskmanagershowsmemoryleak,butHeapsnapshotdoesn't我设法创建了一个非常简单的例子来说明这个漏洞,这里是完整的源代码:svgtestvarsvg;varinterval;varsvg;window.onload=function(){createSVG();start();}functionstart(){interval=setInterval(createElements,100);}functioncreateSVG(){vardiv=document.getElementById("svgdiv");div.inner

javascript - 内存泄漏 : Remaining elements in cache and data_user in AngularJs

我使用ng-repeat创建元素(有些是SVG标签,有些是简单的HTML)。在数据模型发生变化时——一个在新数据到达时重置的对象——总会有元素作为分离的DOM元素留下。他们是这样举行的:元素是data_user的一部分,它似乎是jquery的一部分。此问题发生在多个更改数据的地方。似乎观察者是问题所在,因为他们一直在引用自己的表情。元素被创建,例如像这样:.directive('svgGraphic',['$compile',function($compile){return{restrict:'E',replace:false,link:function(scope,element,

javascript - 你能在 JavaScript 中捕获内存不足错误吗

我正在构建一个依赖缓存的移动网络应用程序。如果我的缓存使用了太多内存,我会在移动版Safari中看到这条消息..."Aproblemoccurredwiththiswebpagesoitwasreloaded".如果没有干预,页面将重新加载并重复做同样的事情几次,直到它放弃。是否有我可以捕获的事件、我可以监控的堆信息或我可以更改的设置以构建比强制页面重新加载更有弹性的缓存系统?Chrome有window.performace.memory但我似乎找不到任何与解决我在移动版Safari中的问题相关的内容。Try/catch语句和onBeforeUnload事件不会阻止页面加载或提供清除/

javascript - Chrome 中奇怪的 javascript 内存

我在index.html中有以下内容:以及program.js中的以下内容:document.writeln(JSON.stringify(name));name="Bob";第一次打开index.html,是这样产生的(输出A):>""然后,在刷新页面后,产生了(输出B):>"Bob"我从未在Firefox中看到输出B。回到Chrome:但是,如果我使用“name”以外的一些变量,例如“val”:document.writeln(JSON.stringify(val));val="Bob";我得到一个异常(exception):UncaughtReferenceError:valis

JavaScript - 内存友好的脚本

在JavaScript中是否有类似内存友好脚本的东西?我应该知道的某些原则?我问这个是因为我有一个网站,其中#div填充了大量数据,我使用原始.innerHTML=i_hold_lots_of_data;我想知道code>.innerHTML='';与C中的free()具有相同的效果吗?所以我的问题可以缩小为:在内存管理方面,是否有处理JavaScript中大字符串的最佳实践? 最佳答案 如果您想深入了解您的内存配置文件,您应该使用GoogleChrome控制台(选项卡配置文件)等工具。它显示了哪些对象使用了多少内存。一般来说,您应