草庐IT

编译优化

全部标签

javascript - 优化/函数运行时 v8 状态代码会发生什么变化?

我看到一个关于v8Optimization的问题这让我尝试了一下v8优化。我还看过关于v8的bluebird帖子Optimizationkillers.根据v8repo,优化状态代码是2的乘积:1,2,4,8等等(参见OptimizationStatus枚举)然而,下面的代码给了我奇怪的状态代码,比如17和65,而且只在这些特定情况下(见最后几行代码)。关于为什么会发生这种情况的任何想法?functionadder(a,b){returnnewFunction('a','b','returnb%2?a+b:b%3?a-b:b%5?b/a:a*b')(a,b);}functionadde

javascript - 鉴于 V8/spidermonkey/chakra 的内部工作原理,在 JavaScript 中显式初始化 undefined object 成员是否是一种优化?

在JavaScript中,一个通常被吹捧的良好性能原则是避免改变对象的形状。这让我想知道,这是不是classFoo{constructor(){this.bar=undefined;}baz(x){this.bar=x;}}一个有值(value)的最佳实践,将提供比这更好的性能classFoo{constructor(){}baz(x){this.bar=x;}}这是真的还是假的?为什么?在一个JS引擎中是否比其他引擎更真实或更不真实? 最佳答案 这里是V8开发人员。是的,总的来说,第一个版本是一个有值(value)的最佳实践。这样

javascript - 关于如何使用 Google Closure Compiler 组合多个没有任何优化的 javascript 文件的想法?

关于如何使用GoogleClosureCompiler组合多个JavaScript文件而不进行任何优化,有什么想法吗?具体来说,我们想使用Closure来部署我们组合站点JavaScript的两个版本:release和debug。对于发布,我们使用的是--compilation_levelSIMPLE_OPTIMIZATIONS--manage_closure_dependencies,它按预期工作。但是,对于调试,我们希望我们的JavaScript完整/未修改地组合在一起,以便于调试。似乎最低级别的优化是WHITESPACE_ONLY,任何想法将不胜感激。

javascript - CoffeeScript 编译 : Unexpected IF

我正在为API编写一些CoffeeScript代码,并且在我的代码的错误捕获部分放置了一个IF语句。现在,在编译过程中,CoffeeScript说IF语句是意外的。#HandleErrorsapp.error(err,req,res,next)->iferrinstanceofNotFoundres.send'404,notfound.'elseres.send'500,internalservererror.'app.get'/*',(req,res)->thrownewNotFoundNotFound=(msg)->this.name='NotFound'Error.callthi

javascript - 你如何优化你的 Javascript?

嗯...简单的问题,对吧?但没有这么简单的答案。在firefox中,我使用firebug控制台(配置文件)但是......在其他浏览器中该怎么办?像InternetExplorer/Opera/Safari(在Windows上) 最佳答案 随着时间的推移,这个特殊问题会自行解决。;-)InternetExplorer的第8版(目前处于beta2中)附带一个内置的JavaScript分析器。下一个Safari版本可能还会包含一个,因为它的渲染引擎WebKit现在有一个作为其WebInspector的一部分。.

javascript - 如何针对 IE 进行优化?

我有一个大量使用JS的应用程序,它在IE中运行缓慢。我将花费大约一周的时间针对IE进行优化,我希望获得一些尝试方面的指导。我发现此线程引用了Drip,这似乎很有用:IEandMemoryaccumulationinJavascript我正在寻找诸如“使用for循环而不是$.each”之类的技巧以及我可能没有使用的架构最佳实践。我正在使用的库:jQuery谷歌地图FacebookJSAPIKnockoutJSTaffy我已经在做的事情:使用for循环代替$.each缓存常用DOM元素的jQuery上下文使用Array.join()与字符串连接构建HTML有什么建议吗?谢谢!

javascript - linting 和编译有什么区别?

我知道在Java中有一个编译器可以在您编写错误代码时告诉您。但是Javascript不能那样工作,因为它没有编译器。但是,“linting”javascripts是编译代码的方式吗? 最佳答案 Linting正在解析代码以验证语法和格式是否正确并遵循良好实践。linter会告诉您缩进是否不正确,或者您是否应该在=运算符周围添加空格。如果您的代码包含众所周知的安全漏洞或代码异味,linter也会向您发出警告。编译是解析代码以验证语法是否正确并将代码转换为不同的语言(通常是更快的语言)。那么有什么区别呢?编译:语法验证代码转换为不同的语

javascript - 优化批量( block )将对象上传到 IndexedDB

我想在一个事务中将对象添加到IndexedDB中的某个表中:_that.bulkSet=function(data,key){vartransaction=_db.transaction([_tblName],"readwrite"),store=transaction.objectStore(_tblName),ii=0;_bulkKWVals.push(data);_bulkKWKeys.push(key);if(_bulkKWVals.length==3000){insertNext();}functioninsertNext(){if(ii看起来它工作正常,但它不是非常优化的方

javascript - Javascript 引擎中的尾调用优化实现

这个问题在这里已经有了答案:AreanyJavaScriptenginestailcall(TCO)optimized?[duplicate](6个答案)关闭上个月。截至2019年2月,Mac上的Chrome版本71.0.3578.98,下面的程序抛出UncaughtRangeError:Maximumcallstacksizeexceedederror.atacountof16516.consta=x=>{console.log(x)a(x+1)}a(1)我已经进行了大量的谷歌搜索,但未能找到任何讨论Chrome或其他浏览器对尾调用优化(TCO)的支持或任何future实现计划的文章

javascript - 使用 d3.js 和 TypeScript 绘制饼图时出现编译错误

我正在尝试使用d3.js库和TypeScript绘制饼图。我有以下代码:"usestrict";moduleChart{exportclasschart{privatechart:d3.Selection;privatewidth:number;privateheight:number;privateradius:number;privatedonutWidth:number;privatedataset:{label:string,count:number}[];privatecolor:d3.scale.Ordinal;constructor(container:any){this