草庐IT

javascript - 当用作 Node.js 的 JS 引擎时,Microsoft 的 ChakraCore 是否比 Google 的 V8 提供任何性能优势

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion[我已经编辑了我的问题,将场景缩小到只有Node.js。请重新打开它。这是一个有用的问题,正确的答案可能会在未来出现,而且不会很快出现,因为ChakraCore还很年轻。但是这个问题是有效的,应该在这里]多年来,我们都知道/读过/听说过GoogleV8引擎的荣耀,以及它如何让node.js变得如此美丽。但是现在我们可以选择Microsoft的ChakraCore和Google的V8作为我们首选的Java

node.js - V8 是否有任何预编译的二进制文件?

V8是node.js的重要组成部分,它使用GoogleV8Javascript引擎。在我的windowsbox[Windows7/64-bit]上构建V8将花费我数小时的时间来获取和安装我不熟悉的工具(尽管我确实使用Cygwin)。如果那里有一些二进制安装程序,它会为我省去很多麻烦。谷歌搜索没有返回任何明显的位置——这里的大师知道吗?即使您对我的确切环境一无所知,在这里分享其他人也会对同舟共济的人有所帮助... 最佳答案 node.js中没有V8二进制文件。相反,V8被绑定(bind)到node.js二进制文件中。就像其他人一样在C

node.js - Node.js 和 V8 有什么关系?

我一直在思考这个问题,但似乎无法找到答案。Node.js和V8有什么关系?Node.js可以在没有V8的情况下工作吗? 最佳答案 WhatistherelationshipbetweenNode.jsandV8?V8是node.js内部的Javascript引擎,用于解析和运行您的Javascript。Chrome内部使用相同的V8引擎在Chrome浏览器中运行javascript。Google开源了V8引擎,node.js的构建者使用它在node.js中运行Javascript。CanNode.jsworkwithoutV8?没有

node.js - 什么是 ".v8flags.3.14.5.9.{Name}"?

我正在全新安装Windows10Professional(x64),并注意到我的主目录的根目录中出现了一些特殊文件,特别是我看到....v8flags.3.14.5.9.CielCiel显然是我的用户名;我试图在这个文件上进行搜索,但发现很少-我能说的最好的是它与nodejs相关,这可能是有道理的,因为我有VisualStudio2015已安装。其他人可以识别这个文件是什么,我是否需要保留它? 最佳答案 您可以放心地删除它。nodejs模块v8flags使用该文件进行缓存。如果您删除它,它将在下次运行时创建一个新的。我猜它的创建是因

javascript - 箭头函数是否比 v8 中的普通独立函数声明更快(性能更高、更轻)?

我问这个问题是因为我和我的同事在编码风格上存在争议,因为他更喜欢箭头函数声明:constsum=(a,b)=>a+b;而且我更喜欢老式的独立函数声明:functionsum(a,b){returna+b;}我的观点是旧式代码更具可读性,您可以更清楚地区分函数和变量声明。他的观点是带有箭头函数的代码运行得更快。当您使用旧式独立函数声明而不是箭头函数时,您是否了解实际的性能损失(在v8中)?惩罚真的存在吗? 最佳答案 V8开发人员在这里。箭头函数(大部分)只是常规函数声明的“语法糖”。没有性能差异。

javascript - 如何有效地检查变量是数组还是对象(在 NodeJS 和 V8 中)?

在NodeJS和V8中,有什么方法可以有效地检查变量是对象还是数组?我正在为MongoDB和NodeJS编写模型,并且要遍历对象树,我需要知道对象是简单的(数字、字符串、...)还是复合的(哈希、数组)。似乎V8内置了快速Array.isArray,但是如何判断object是否为Object呢?我的意思是像散列{}或类实例这样的复杂对象,而不是像newString()这样的复杂对象?通常可以这样做:Object.prototype.toString.call(object)=="[objectObject]"或者这个:object===Object(object)不过这个操作好像不便宜

javascript - 在 V8 JavaScript (Chrome & Node.js) 中访问行号

使用过C等语言的JavaScript开发人员经常错过使用某些类型的内省(introspection)的能力,例如记录行号,以及当前方法是从哪个方法调用的。好吧,如果您使用的是V8(Chrome、Node.js),您可以使用以下内容。 最佳答案 Object.defineProperty(global,'__stack',{get:function(){varorig=Error.prepareStackTrace;Error.prepareStackTrace=function(_,stack){returnstack;};vare

node.js - 如何检查我的 NodeJS 安装了哪个版本的 v8?

V8是如何与NodeJs一起安装的?我目前的V8引擎是什么版本? 最佳答案 一线解决方案:node-pprocess.versions.v8替代方案:node-e"console.log(process.versions.v8)" 关于node.js-如何检查我的NodeJS安装了哪个版本的v8?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5356113/

node.js - bower init - amd、es6、globals 和 node 之间的区别

我正在创建我的第一个Bower组件。运行bowerinit后,脚本会询问我“这个包暴露了哪些类型的模块?”使用这些选项:amdes6全局变量Node这些选项有什么区别? 最佳答案 如果您不知道,那么globals很可能是您的正确答案。无论哪种方式,您都需要了解:whatisandwhyAMDwhatisanodejsmodulewhatisecmascript6andespeciallyes6modules[更新]此功能是最近在bower中引入的,目前还没有记录(AFAIK)。它本质上描述了moduleType,它说明了包打算使用的

mongodb - MongoDB 中 V8 JavaScript 引擎对 map reduce 的好处

听起来V8JavaScript引擎可能是replacingSpiderMonkeyinMongoDBv2.2+.这会给MongoDBmap-reduce性能带来什么好处(如果有的话)?例如:整体JavaScript评估性能会提高吗(我假设这是给定的?)并发map和reduce操作能否更好地在单个实例上并行运行?map-reduces还会互相阻塞吗? 最佳答案 是的,它将有助于并行性,并有助于提高性能。Spidermonkey引擎将MongoDB限制为单线程,但是操作通常很短,并且允许其他线程交错,因此很难量化确切的影响。当然,测试始