草庐IT

编译优化

全部标签

javascript - 检测在不可见和在视口(viewport)外时是否对canvas/css3动画进行了优化

我假设使用HTML5中的所有这些硬件加速动画,实际上不会渲染在视口(viewport)之外运行的动画。我希望能够检测到是否正在发生。我尝试在每秒移动100px的对象上循环使用webkitCSSMatrix来尝试确定每个刻度线移动了多少像素,但是如果我将动画移出视线则没有区别。有任何想法吗? 最佳答案 您可以使用单独的计时器测试来查看伪经验方面在外部和内部绘制的对象之间的差异(计时器实际上并不能证明任何东西,但可以为您提供强大的indisium)。但是,了解Canvas的工作原理也可以为您提供坚实的指导。例如,Canvas是一个简单的

javascript - 如何获取优化掉的变量值?

一些变量可以在Javascript执行期间被“优化掉”。因此,此类变量的值在调试时不可用于检查(Userdocumentation)。变量View显示(优化掉)消息,如果尝试评估变量,控制台会抛出以下错误:Error:variablehasbeenoptimizedout有什么方法可以在Firefox中强制评估此类变量或禁用此优化? 最佳答案 以防止这种优化的方式使用变量。functionNOP(){}//thenintheoptimisedcodeNOP(myvar);//debugginghereshouldnowshow`my

fdk-aac交叉编译与使用

简介fdk-aac可用于aac编解码器,源码链接:https://github.com/mstorsjo/fdk-aac选择Tags下的一个稳定版本,如v2.0.2,进行下载编译解压压缩文件tar-xvffdk-aac-2.0.2.tar.gz添加sigmastar_uclibc_config.cmake文件:#参考https://cmake.org/cmake/help/v3.22/manual/cmake-toolchains.7.html#cross-compiling-for-linuxSET(CMAKE_SYSTEM_NAMELinux)set(CMAKE_SYSTEM_PROCES

javascript - 着色器编译错误

我正在尝试编译一个“垃圾”着色器,将一些垃圾代码提供给WebGL(有关fiddle,请参阅here):gl=$('canvas')[0].getContext('experimental-webgl');source='garbage12398sv;aa[]|\[12';shader=gl.createShader(gl.FRAGMENT_SHADER);gl.shaderSource(shader,source);gl.compileShader(shader);console.log(gl.getError()===gl.NO_ERROR);令人惊讶的是,尽管要求WebGL编译一些

javascript - 如何从外部 JavaScript 调用 Haxe 编译的 JS?

我已经编译了我的HaxeJS项目,它运行良好。我在Haxe中拥有的是一个Main类。现在,我需要从Haxe编译的Main调用静态函数。我试着这样调用它:Main.init();但是我明白了UncaughtReferenceError:Mainisnotdefined当我查看已编译的HaxeJavaScript脚本时,我可以看到Main被包装成类似这样的东西:(function(){"usestrict";varMain=function(){那么,如何从外部JavaScript代码到达Main? 最佳答案 您可以添加@:expose

javascript - NodeJS 循环优化

我知道在浏览器中,按照for(vari=0,l=arr.length;i代替for(vari=0;i但是在NodeJS中是这样还是V8引擎优化了呢?我知道ecma-2625.1sec-15.4数组长度定义如下:Thevalueofthelengthpropertyisnumericallygreaterthanthenameofeverypropertywhosenameisanarrayindex;wheneverapropertyofanArrayobjectiscreatedorchanged,otherpropertiesareadjustedasnecessarytomain

javascript - 创建一个 Ahead-of-Time (AOT) 编译库供 Angular 应用程序使用

我有一个Angular5库,我将它公开为一个包,供其他应用从它们的node_modules使用。目前,该应用程序使用rollup和gulp进行即时(JIT)编译,并作为包导出。因此,开发人员应用程序以其JIT编译形式使用我的包。对AOT的研究让我相信,任何使用AOT编译的Angular应用程序都比浏览器上的JIT对应程序具有更高的性能。但是,作为库开发人员,我想知道如果我公开AOT编译的库,应用开发人员是否会获得任何性能优势?我使用ng-bootstrap和许多其他开源库在我的模块中创建组件并在它们之上添加自定义样式或功能。我在模块中使用的所有库是否也需要采用AOT形式,或者我可以使用

javascript - Closure 编译器 - a++ >= 3 可以变成++a > 3 吗?

我承认几天前我问了一个问题,为什么ClosureCompiler不缩短某些代码,乍一看,这个代码是可以缩短的,但这个原因不适用于这种情况,我不太确定为什么会这样'在此缩短。我的代码是:vara=0;functionb(){returna++>=3;}现在有前置递增和后置递增。不同之处在于返回值-a++返回a并且然后递增它,++a首先递增a和then返回它。这归结为我的代码可以缩短为(忽略空格删除):vara=0;functionb(){return++a>3;}但是,ClosureCompiler似乎并没有改变(或识别)这一点。因此我的问题是:当使用++a>代替a++>=时会有什么副作

javascript - Webpack:是否可以在编译时评估 javascript 表达式?

我正在尝试为我的项目设置webpack。该项目足够大,并提供多种语言。我希望我的每个入口点都以每种语言作为单独的文件提供。我的语言文件不仅仅是普通的JSON,而是JavaScript。所以i18n插件不符合我的需求。解决办法好像是i18nplugin:varlanguages=['en','fr','de'];module.exports=languages.map(function(lang){return{name:lang,//someotherlanguage-dependentconfig}})然后在我的一些脚本中,我想使用环境变量要求本地化文件:varlang=...;//

javascript - 需要优化功能

我正在研究这个函数,它必须返回添加a和bn次的所有可能值,例如如果n=1那么可能的值将是a+aa+b和b+b。下面的功能有效,但它太慢了,我想优化它。有什么建议么?非常感谢!functionprocessData(n,a,b){varans=[0];for(vari=0;i 最佳答案 functionprocessData(n,a,b){varans=[];if(a==b){for(vari=0;ib){vartemp=a;a=b;b=temp;}vardiff=b-a;for(vari=0;i好的,这是迄今为止最有效的解决方案。我