草庐IT

内存优化

全部标签

javascript - 在javascript中查找内存使用的工具?

在Chrome任务管理器中,我注意到我的应用程序使用了大约75,000k内存,这似乎有点高。是否有一种工具可以显示内存中的对象,以便我可以识别我在哪里滥用对象,甚至可能泄漏内存? 最佳答案 在ChromeDOM检查器中,您可以单击Profiles->Snapshot。它让您了解页面的内存映射、什么使用多少等等,包括引用计数和对象大小。 关于javascript-在javascript中查找内存使用的工具?,我们在StackOverflow上找到一个类似的问题:

javascript - 用作 Jquery 回调时匿名函数与命名函数的内存开销

我正在学习JS/JQuery以及匿名函数和闭包。我见过这样的例子:$('.button').click(function(){/*Animations*//*OtherStuff*/});如果按钮不止一个,那岂不是效率低下?这不就是在内存中存储匿名函数原型(prototype)的相似副本吗?(纠正我的术语)这样做不是更好吗:functionhandleClick(){/*Animations*//*OtherStuff*/}('.button').click(handleClick);甚至这样,如果需要对按钮的引用:functionhandleClick($obj){/*Animati

javascript - knockout 映射插件中的奇怪内存泄漏

在View模型是使用knockout.mapping插件创建的情况下,无法弄清楚为什么处理计算的可观察对象不会从全局变量中删除订阅。首先让我们看看直接创建模型时会发生什么://Globalvariable.varEnvironment={currencyStr:ko.observable("usd.")};//Itemmodel,usedintensively.functionItemModel(price){varself=this;this.price=ko.computed(function(){//Computedissubscribedtoglobalvariable.ret

javascript - `es2016` 预设的 Babel 是否实现了尾调用优化?

我使用以下示例来测试Babel和es2016预设的尾调用递归:'usestrict';try{functionr(n){if(n%5000===0)console.log(`reachedadepthof${n}`);r(n+1);}r(0);}catch(e){if(!(einstanceofRangeError))throwe;elseconsole.log('stackblown');}我的package.json文件是:{"name":"tail-call-optimization","version":"1.0.0","description":"","main":"inde

javascript - "creation phase"怎么知道设置多少内存空间呢?

在JavaScript:UnderstandingtheWeirdParts讲师解释说,变量的内存是在所谓的创建阶段设置的(并且undefined已分配);然后执行阶段发生。但是,当我们不知道变量稍后将指向什么值时,为什么这很有用呢?显然变量可以指向许多不同的东西——例如一个短字符串一直到一个深层嵌套的对象结构——我假设它们在所需的内存量上可能会有很大差异。如果逐行执行——包括变量赋值——只发生在后面的执行阶段,初始创建阶段怎么知道如何设置内存?或者,是否只为每个变量名称/值对中的名称预留内存,而对值的内存以不同方式管理? 最佳答案

javascript - 休息参数是否允许优化?

TheManagingargumentssectioninBluebird'sarticleonOptimizationkillers指出:Theargumentsobjectmustnotbepassedorleakedanywhere.换句话说,不要做以下事情:functionleaky(){returnarguments;}但是这样做:functionnot_leaky(){vari=arguments.length,args=[];while(i--)args[i]=arguments[i];returnargs;}随着Restparamters的引入,传递rest参数数组还会

嵌套箭头函数的Javascript内存含义

考虑:functionf1(){functionn11(){..lotsofcode..};constn12=()=>{..lotsofcode..};returnn11()+n12()+5;}constf2=()=>{functionn21(){..lotsofcode..};constn22=()=>{..lotsofcode..};returnn21()+n22()+5;}我正在尝试了解调用f1和f2的内存含义。关于n11,thisanswer说:Forsomeverysmallandnormallyinconsequentialvalueof"wasted".JavaScrip

javascript - 优化图像的javascript预加载

我想知道是否有人有任何策略可以通过javascript优化图像的预加载?我正在将Flash应用程序移植到html/css中,试图重新创建尽可能接近原始站点的UI。它本质上是一个照片浏览器应用程序,当用户将鼠标悬停在链接上时会显示高分辨率图像。每页大约有50-80张这样的图片。单独预加载所有图像会导致加载时间明显长于Flash应用程序的加载时间。数据量是相同的,但我必须假设较长的加载时间是由于每张图像必须与服务器进行的往返次数。此外,我发现即使在缓存图像之后每个页面的加载时间也很长,因为页面仍然需要联系服务器以获取每个图像以接收304NotModified代码。有人对加快速度有什么建议吗

Javascript 内存泄漏 : why would assigning object to null work?

关于用于防止内存泄漏的空赋值修复的性质,有人可以为我挠痒痒吗?我们都熟悉以下技术来阻止DOM对象和JS对象之间的循环引用,以防止内存泄漏:functionfoo(){varele=document.getElementById("someParagraphId");ele.onclick=function(){//someactionhere};ele=null;}问题是为什么上面的方法会起作用?将“ele”设置为null肯定会停止循环引用,但它不会也阻止将来对“ele”的引用吗?functionfoo(){varele=document.getElementById("somePar

javascript - jQuery 内存泄漏怀疑

我正在为XML发出AJAX请求。我每秒都在这样做。我注意到我的内存使用量增长到数百兆字节。正如您所想象的,客户对此并不满意。在各个地方阅读之后,我怀疑函数闭包让我头疼。我正在寻找可以进行的任何验证以及有关如何修复它的任何帮助。functionPageManager(){varself=this;self.timeoutHandler=function(){$.ajax({url:'URLtoXML',type:'post',cache:false,context:self,success:function(data){varslf=this;varxmlDoc=$($.parseXML