草庐IT

编译优化

全部标签

javascript - 使用具有高级优化功能的 Closure 编译器时如何在 javascript 中保留全局变量?

我有自己的Javascript库,我想通过使用具有高级优化功能的Google闭包编译器来缩小它。通过查看docs我看到了如何声明在库外使用的函数。但是我找不到一种方法来保存在我的库中声明的全局变量。Closure编译器只是删除它们,因为它认为它们从未被使用过。有人可以帮忙吗?编辑:示例代码:varvariable_1=true;这是在我的库开始时全局定义的,但它从未在库本身中使用过。当它包含在某些页面中时,它会在库外使用。但是Closure编译器不知道,这就是它删除这些声明的原因。 最佳答案 闭包编译器无法移除声明为window["

javascript - Google Closure 编译器解析错误 : invalid property id for `css({float:' left'})`

我正在使用GoogleClosureCompiler应用程序(命令行界面)。当我运行它时,出现以下错误。deploy/js/Home.js:40:ERROR-Parseerror.invalidpropertyidthis.$images.wrapAll('').css({float:'left'});^1error(s),0warning(s) 最佳答案 我相信你需要做:{'float':'left'}这是因为float在listofJavakeywordsreservedbyJavaScript上,因此它不能用作属性名称。这在较

javascript - Javascript 是编译还是两次解释?

我是一名公认的新手JavaScript程序员,正在尝试学习更多知识。所以我向你们求助,带着这个简单的问题:)。我正在阅读的O'Reilly书一直提到JavaScript代码的编译时间。我对函数式编程(方案等)的了解告诉我,JavaScript实际上是由浏览器解释的,很可能需要通过JavaScript两次。我的评估有误吗?或者这本书引用的编译时间实际上只是解释器的第一遍,类似于Perl或Python的运行方式?谢谢! 最佳答案 它依赖于浏览器。查看WebKit的SquirrelFishExtreme和GoogleV8以了解最快的结果,

javascript - 在元素中使用 Node.js 作为独立的 LESS 编译器?

我一直在尝试合并lessc大型元素中的编译器具有Bootstrap的基本设置,它只会导致各种编译错误(每个人都有不同解决方案的门票)。没有一个解决方案能满足我的需求,这是一种通过命令行编译less-pile的方法。我通过node.js编译了各种其他Assets,并希望用less做同样的事情,但我发现关于这个主题的每个googlepage都是Node.js+Express,这不是我想要的。我想要一个独立的编译器。(想法:require.jsr.js文件)我找到了Node-less但它已经2年没有更新了,因此并不理想。所以。问题:是否有命令行方式可以使用node.js编译less-file

javascript - 优化javascript代码以使用整数运算

有一些算法可以“非常好”地解决问题,前提是“非常好”意味着最小化浮点算术运算的数量以支持整数算术。以Bresenham'slinealgorithm为例为了弄清楚要填充哪些像素以便在Canvas上画一条线:这个人几乎只用了一些简单的整数运算就使整个过程变得可行。这种事情在很多情况下显然是好的。但是,在javascript中需要大量float学运算的操作值得担心吗?我知道就语言规范而言,一切都几乎是十进制数。我想知道是否实际上尝试让事情尽可能接近整数是否值得——浏览器是否进行了优化以使其值得? 最佳答案 您可以在javascript中

javascript - const 与内联字符串文字,编译优化

这不是问题,而是基于代码结构对V8优化的探索。我和另一位开发人员正在就V8的编译优化争论conststringliteralvsinlinestringliteral的值(value)。当然,假设我们始终处于严格模式。这里有一些代码示例放在上下文中:常量constNAME="something";functiondoSomething(s){returnNAME+s;}对比内联字符串functiondoSomething(s){return"something"+s;}我们的共识:-const为魔法值提供更多上下文,从而简化维护。我们不同意的地方:我说const的使用允许V8编译时优化

javascript - 动态与静态编译器 (JavaScript)

我目前正在用ANTLR+Java编写一个JavaScript编译器。我在StackOverflow上阅读了有关如何继续执行的问题-答案始终是动态语言的静态编译(没有JIT信息)太难了-但为什么是这样吗?当然存在明显的“类型解析”问题,在JavaScript中可能是eval函数的问题——但还有其他原因吗?(因为它们似乎不太难克服纯静态(无JITS))我排除了基于JIT的编译,因为我认为这对我来说太难实现了。我在编写带有字节码执行的静态编译器方面有一些经验。更新:您所有的回答都非常有助于理解问题。澄清一下,这是否意味着JavaScript比其他动态语言更难实现?这是否也意味着我最好使用基于

javascript - 无法启动 typescript 编译文件

我已经使用PhantomJs将大型JS项目转换为typescript(作为我的C#程序员)。问题是解释器(phantomjs)在执行此js文件时失败。D:\My\phantomjs-1.9.7-windows\phantomjs.exe--load-images=false--ssl-protocol=any--web-security=no--cookies-file=cookiesC:\Users\alex\Projects\robot\bo.jsTypeError:'undefined'isnotanobject(evaluating'b.prototype')代码是:var__

Javascript Math.ceil(Math.abs()) 优化

我在循环中使用Math.ceil(Math.abs(x))。谁能实现这个操作的任何优化?(按位还是什么?)欢迎您在jsperf.com进行基准测试 最佳答案 根据webkitJavaScriptCore,Math.abs并没有变得更简单caseMathObjectImp::Abs:result=(arg不过ceil使用的是C的ceil函数caseMathObjectImp::Ceil:result=::ceil(arg);所以在JSpref上测试http://jsperf.com/math-ceil-vs-bitwise按位更快测试

javascript - 1000 个 div 上的 jQuery 单击事件,优化方法?

我正在构建一个销售事件门票的系统。目前大约有1000个不同的座位可供游客选择。也许有一天它会达到5000。现在我有一个div用于每个位置,然后是一些jQuery以使用ajax保留位置。所以这意味着我有大约1000个div,更令人担忧的是我的jQuery选择器在每个div上设置了一个点击事件。在这方面有更好的方法吗?我想在按下div时触发ajax,而不是重新加载页面。 最佳答案 使用.delegate():$("#container").delegate(".child","click",function(){alert("Click