草庐IT

v8-profiler

全部标签

当 JS Profiling 打开时,JavaScript 代码运行得更快?什么?

我的应用程序遇到了一个非常奇怪的行为-如果我启动探查器(必须是JS探查器),代码的运行速度几乎是原来的两倍。我用一个非常简单的代码复制了它,可以在这个fiddle上找到它:https://jsfiddle.net/zagrwk44/问题是,这只能在配备旧显卡的机器上重现。我设法在装有AMDRadeonHD6450显卡的机器上重现了它。在较新的机器上,这不再重现。分析器如何使代码运行得更快?几乎是两倍的速度!这里花时间的代码只是改变屏幕上一个div的位置:for(vari=0;i我使用console.profile和console.profileEnd通过javascript启动和停止分

javascript - 使用 V8 的 Javascript 中的文件系统 I/O

我的印象是,如今javascript可以用作浏览器之外的适当的通用编程语言,使用独立的解释器,如V8或SpiderMonkey。所以我继续安装V8。但是,我想做的第一件事是读入文件并进行一些处理。我环顾四周,没有找到使用JS/V8执行此操作的明显方法。我的直觉告诉我,在V8中必须有一个围绕C++文件i/o函数的包装函数。这已经完成了吗?还是我需要自己实现?或者也许我错过了重点!?感谢您提供的任何帮助! 最佳答案 有一个名为nodeJS的项目专为此设计:http://nodejs.org/-它才刚刚开始变得真正流行。特定于文件IO的示

javascript - setTimeout 和 V8

我已经独立安装了V8并执行如下javascript代码:./d8source.js。当我使用setTimeout时,我收到ReferenceError:setTimeoutisnotdefined。这是应该的吗?是否可以以某种方式包含此功能? 最佳答案 setTimeout不是ECMA-262的一部分,它是由浏览器实现的。但是,如果您安装Node.js(这是V8+extras)你会得到一个命令行setTimeout。 关于javascript-setTimeout和V8,我们在Stack

javascript - V8 javascript 引擎有 GIL 吗?

我读到V8Javascript引擎是一个即时编译器。PyPy是一个Python解释器,也是一个即时编译器。PyPy以在存在多个线程时具有GIL而闻名。V8Javascript引擎是否有类似全局解释器锁(GIL)的东西来处理网络工作线程?是否所有动态语言在处理多核时都存在问题?如果是,为什么JIT编译器在处理GIL时会出现问题? 最佳答案 ChromiumWebWorkers是在V8Isolates之上实现的。每个Isolate本质上都是一个完全独立的V8VM实例。许多Isolates可以共存于同一个进程中并同时执行JavaScrip

javascript - 为什么在 V8 上调用对象字面量的方法会更慢?

我对这个simplejsperftest的结果感到惊讶:Benchmark.prototype.setup=function(){varO=function(){this.f=function(){};}varo=newO();varo2={f:function(){}};};//Testcase#1o.f();//~721Mops/s//Testcase#2o2.f();//~135Mops/s我希望两者执行相同(事实上,Firefox中的性能相似)。V8一定在案例#1上优化了一些东西,但是什么? 最佳答案 关于V8和jsPerf

javascript - Chrome V8 错误?函数在第二次被调用后表现不同

请看下面的JavaScript。我已经去掉了其中的内容,因此您可以关注问题的本质。您会注意到我连续两次调用prepPath函数,传入完全相同的字符串。在firefox和IE8中,此函数每次都会发出true警报(正如预期的那样)。但是,在Chromium5.0.375.127(55887)Ubuntu10.04中,函数第一次返回true,第二次调用返回false,尽管输入保持完全相同!functionprepPath(str){varregX=/[^\s/"'\\].*[^\s/"'\\]/g;if(regX.test(str)){alert("true:"+str);}else{ale

javascript - 可以在 Chrome 的 JavaScript 中获取 V8 JavaScript 引擎版本号

我看到最多stablereleaseV8的版本是3.26.9我想知道是否可以直接在JavaScript中获取这个版本号,或者甚至可以找到Chrome以某种方式使用的版本号。有什么办法吗? 最佳答案 不是直接通过Javascript不,但是您可以将每个Chrome版本映射到V8引擎。要找到Chrome使用的v8版本,只需使用URI查找它:chrome://version/ 关于javascript-可以在Chrome的JavaScript中获取V8JavaScript引擎版本号,我们在St

HazelEngine 学习记录 - Profiling

ProfilingIntroToProfiling为了能够清晰的观察整个引擎的性能消耗情况,我们需要一个可视化的工具来进行性能分析,例如Unity的内置Profiler:其实本质就是将每个函数运行的时间进行可视化,这里我们借用标准库chrono来进行时间的计算#includetemplatetypenameFn>classTimer{public: Timer(constchar*name,Fn&&func) :m_Name(name),m_Func(func),m_Stopped(false) { m_StartTimepoint=std::chrono::high_resolution

javascript - 在没有 JIT 的情况下构建 v8

我想在有和没有JIT的情况下在v8上运行一些测试来比较表演。我知道JIT会提高我的平均速度性能,但它会因为我想使用移动平台,所以我很高兴能获得一些实际的更详细的测试结果。我还没有找到如何启用或禁用JIT,就像它存在于Squirrelfish上一样(参见JavaScriptCore/wtf/Platform.h中的ENABLE_JIT)。有人知道如何用v8做到这一点吗?谢谢。亚历山大 最佳答案 对于那些可能感兴趣的人,我从SørenGjesse在v8-usersgooglegroups上得到了以下答案。你好,在V8中无法禁用动态生成的

javascript - 你如何在谷歌的 v8 中包含另一个 js 文件?

如何在v8中的.js脚本文件中包含另一个脚本文件?HTML中有标签,但如何在v8嵌入式程序中完成? 最佳答案 您必须手动添加此功能,我是这样做的:HandleInclude(constArguments&args){for(inti=0;i0){Handlesource=String::New(js_file.c_str());Handlescript=Script::Compile(source);returnscript->Run();}}returnUndefined();}Handleglobal=ObjectTemplat