草庐IT

OPTIMIZATION

全部标签

javascript - 如何更快地匹配此文本?

我正在为名字建立一个自动建议。当用户在文本框中输入内容时,它会访问服务器并运行:varnames=[listof1000names];//Ihavealistof1000names,thisisstatic.varquery='alex';varmatched_names=[];//Thisiswhenitgetsslow....names.forEach(function(name){if(name.indexOf(query)>=0){matched_names.push(name);}});returnmatched_names;我怎样才能让它更快?我正在使用Node.js

javascript - 优化-获取数组中的第三大数字

所以,我正在努力应对这个挑战,以返回数组中第三大的数字。我已经解决了,直到我意识到我必须考虑重复数字。我通过添加3层带有变量i、j和k的for循环来处理这个问题。你会明白我在代码中的意思。这不是非常有效或可扩展。我的问题是,我该如何优化这段代码?我应该使用哪些其他方法?functionthirdGreatest(arr){arr.sort(function(a,b){if(ab){return-1;}else{return0;}});for(vari=0;iarr[j]){if(arr[j]>arr[k]){returnarr[k];}}}}}}console.log(thirdGre

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 - 有没有办法在我的网站上更快地加载嵌入式 YouTube 视频?

我正在撰写一篇博文,其中使用了来自YouTube和YahooVideo的多个视频,但我对页面呈现所需的时间不满意。除了使用ajax-y方法加载视频外,是否有任何技巧可以使页面加载来自不同来源的多个视频更快? 最佳答案 嵌入式YouTube视频的问题在于播放器本身需要加载。您可以在嵌入代码的URL中添加“controls=2”,但这只会让AS2/3播放器在点击后加载播放器。Google+针对此问题的解决方法是根本不加载播放器。相反,它会加载一个叠加有播放按钮的缩略图。单击时,图像会替换为实际的YouTube播放器iframe嵌入代码,

javascript - 我们如何使用javascript在数组中使用正则表达式过滤数组中的元素?

假设我有两个数组:一个是正则表达式,另一个是输入。那么,就性能和可读性而言,执行类似输出的最佳方法是什么?varregex=['/rat/','/cat/''/dog/','/[1-9]/']vartexts=['thedogishiding','cat','human','1']最终结果是result=['human']好吧,我当时想的是做一些类似reduce的事情://loopbytextfor(vari=texts.length-1;i>=0;i--){//loopbyregextexts[i]=regex.reduce(function(previousValue,curren

javascript - 什么是javascript模板预编译?

我正在为我在javascript中的工作开发简单的模板引擎。它需要非常简单,所以我没有使用Handlebars、mustache或任何其他可用的强大模板引擎。我一直在阅读“PRECOMPILE”或“COMPILE”模板来提高性能。但我不确定那到底是什么意思。在我的工作中,我将模板html缓存在我的对象中,以避免每次都访问模板html。这个函数很简单,主要做了以下几件事_template=_template.replace(/\{(.+?)\}/g,function(token,match,number,txt){returnitem[match];});item是包含要替换的值的对象。

javascript - 优化击倒/TKO - Alpha3

现代化进程中Knockout对于4.0版(现在位于monorepotko),我遇到了一些性能问题。在其他变化中,一些内部循环的东西已经转换为ES6类,这导致了一些主要的性能问题。我不想撤销这项工作,因为它为一些关键代码增加了相当多的清晰度,所以我想征求一些关于如何改进ES6代码的意见。我在这里设置了一些用于分析的简单示例:KnockoutAlpha2-349毫秒KnockoutAlpha3(prerelease)-622毫秒jsFiddles中的代码如下,它是许多绑定(bind)所经历的减速的原型(prototype)。HTML:{{count}}/{{time}}mscc{{#unl

javascript - 为什么这段 JavaScript 代码经过 Node.js 优化后运行速度变慢了

我正在为ICPC创建一个解决方案使用JavaScript和Node.js的问题当我遇到一个有趣的问题时:在某些情况下,我的程序在同一数据集上的运行速度会慢两倍。我精简了它,直到我得到这个演示行为的最小示例:functionsolve(arr){consttotal=arr.reduce((a,c)=>a+c,0);constcount=arr.length;for(leti=0;i这是使用Nodev10.15.1运行node--trace-optcode.js的输出:[marking0x005062b82521foroptimizedrecompilation,reason:small

javascript - 如何在不影响性能的情况下向函数添加详细的日志记录代码?

性能对于我正在编写的某个类很重要。我考虑过这样调用一个函数:debug('Thisisadebugmessage,onlyvisiblewhendebuggingison');内容应该是这样的functiondebug(message){if(DEBUG)console.log(message);}所以我想知道:如果DEBUG变量永远不会改变,这是否足以让V8将其标记为“死代码”?编辑:与浏览器相比,我更担心Node中的性能,因此在缩小时删除代码是不够的。Edit2:我根据建议的解决方案做了一个JSPerf基准测试,它们非常令人惊讶:http://jsperf.com/verbose-

javascript - 如何让我的 setTimeout 函数以相同的速度运行?

前言:我有一个demooftheproblem在我的个人网站上(我希望这没问题。如果不行,我可以尝试在jsfiddle上进行设置)。我想让这个问题变得有趣一些,同时也试图了解javascript中的时间函数。我在超时时增加进度条的值。理想情况下(如果函数即时运行)它们应该以相同的速度填充,但在现实世界中,它们并非如此。代码是这样的:functionsetProgress(bar,myPer){bar.progressbar({value:myPer}).children('.ui-progressbar-value').html(myPer.toPrecision(3)+'%').at