Questions tagged «v8»

V8是Google的开源JavaScript引擎。

10
什么是Node.js?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我没有完全了解Node.js的全部含义。也许是因为我主要是基于Web的业务应用程序开发人员。它是什么,有什么用? 到目前为止,我的理解是: 编程模型是事件驱动的,尤其是它处理I / O的方式。 它使用JavaScript,解析器为V8。 它可以轻松用于创建并发服务器应用程序。 我的理解正确吗?如果是,那么事件I / O的好处是什么,并发性东西还有更多好处吗?另外,Node.js的发展方向是否像基于JavaScript(基于V8)的编程模型一样?

4
为什么在V8中使用此代码段,<=比<慢?
我正在阅读使用V8打破JavaScript速度限制的幻灯片,并且有一个类似下面代码的示例。我不知道为什么&lt;=比&lt;这种情况要慢,有人可以解释吗?任何意见表示赞赏。 慢: this.isPrimeDivisible = function(candidate) { for (var i = 1; i &lt;= this.prime_count; ++i) { if (candidate % this.primes[i] == 0) return true; } return false; } (提示:质数是长度为prime_count的数组) 快点: this.isPrimeDivisible = function(candidate) { for (var i = 1; i &lt; this.prime_count; ++i) { if (candidate % this.primes[i] == 0) …
166 javascript  v8 

1
Bluebird的util.toFastProperties函数如何使对象的属性“快速”?
在Bluebird的util.js文件中,它具有以下功能: function toFastProperties(obj) { /*jshint -W027*/ function f() {} f.prototype = obj; ASSERT("%HasFastProperties", true, obj); return f; eval(obj); } 由于某种原因,在return函数之后有一条语句,我不确定为什么会在其中。 同样,这似乎是故意的,因为作者已对此发出了JSHint警告: “返回”后无法到达“评估”。(W027) 此功能的作用是什么?难道util.toFastProperties真的让一个对象的属性“快”? 我已经在Bluebird的GitHub存储库中搜索了源代码中的任何注释或问题列表中的解释,但找不到任何注释。

2
Node.js 0.12中提供的ECMAScript 6功能
最近,随着升级的Google v8 JavaScript引擎v3.28.73发行了新的稳定版本的Node.js(0.12)。 不使用该--harmony标志,Node.js当前具有哪些ECMAScript 6功能? 我已经检查了几个声称列出ES 6功能的站点,但是它们似乎都已过时-最显着的是,此表(更新: 现在更新为当前Node.js,状态为0.12),因为其中一些功能列为:--harmony我发现其中一些默认情况下处于启用状态(地图,集合,符号等)时,需要使用该标志。更新:特定于节点的表已提供 另外,尝试仅针对v8引擎搜索此信息会提供太多最新信息-当前的v8版本为4.2。*,这比Node.js所使用的要早得多。 我希望这个问题(及其答案)将成为Node.js开发人员现在可以使用的ES 6功能的全面摘要。 我目前知道在Node.js 0.12中启用的ES 6功能: 地图,集合/ WeakMap,WeakSet 符号 对象观察 承诺 数 .isInteger .isSafeInteger .isNaN .EPSILON .MIN_SAFE_INTEGER .MAX_SAFE_INTEGER 数学 .clz32 .imul 。标志 .log10 .log2 .log1p .expm1 .cosh .sinh .tanh .acosh .asinh .atanh .trunc .fround .cbrt .hypot


5
何时在Node.js中使用next()并返回next()
场景:考虑以下是节点Web应用程序的代码部分。 app.get('/users/:id?', function(req, res, next){ var id = req.params.id; if (id) { // do something } else { next(); //or return next(); } }); 问题:我正在检查哪一个next()或人选return next()。上面的示例代码对两者的工作原理完全相同,并且在执行方面没有任何区别。 问题:有人可以对此加以说明,何时使用next()和何时使用return next()以及一些重要的区别吗?
136 node.js  express  connect  v8 

4
node.js process.memoryUsage()的返回值代表什么?
从官方文档(来源): process.memoryUsage() 返回一个对象,该对象描述以字节为单位的Node进程的内存使用情况。 var util = require('util'); console.log(util.inspect(process.memoryUsage())); 这将产生: { rss: 4935680, heapTotal: 1826816, heapUsed: 650472 } heapTotal和heapUsed是指V8的内存使用情况。 究竟是什么做RSS,heapTotal和heapUsed立场? 这似乎是一个琐碎的问题,但我一直在寻找,到目前为止,我还没有找到明确的答案。
132 node.js  v8 

13
在没有浏览器的情况下执行JavaScript?
我正在寻找没有浏览器的Javascript编程。我想从Linux或Mac OS X命令行运行脚本,就像我们运行任何其他脚本语言(红宝石,PHP,Perl,Python ...)一样 $ javascript my_javascript_code.js 我研究了蜘蛛猴(Mozilla)和v8(Google),但它们似乎都是嵌入式的。 是否有人将Javascript作为脚本语言从命令行执行? 如果有人好奇,为什么我期待到这一点,我一直在关注着Node.js的。node.js的性能使我想知道javascript是否可能是用于处理大数据的可行脚本语言。


1
为什么JavaScript中Math.pow()(有时)不等于**?
我刚刚发现ECMAScript 7功能可以a**b作为Math.pow(a,b)(MDN参考)的替代产品,并且在该帖子中遇到了一个讨论,在这些讨论中它们的行为显然有所不同。我已经在Chrome 55中对其进行了测试,可以确认结果是否有所不同。 Math.pow(99,99) 退货 3.697296376497263e+197 而 99**99 退货 3.697296376497268e+197 因此记录差异会Math.pow(99,99) - 99**99导致-5.311379928167671e+182。 到目前为止,可以说这只是另一个实现,但是将其包装在函数中的行为又有所不同: function diff(x) { return Math.pow(x,x) - x**x; } 打电话diff(99)的回报0。 为什么会这样呢? 正如xszaboj所指出的,可以缩小到这个问题: var x = 99; x**x - 99**99; // Returns -5.311379928167671e+182

4
为什么typeof null的值在循环内变化?
在Chrome控制台中执行以下代码段: function foo() { return typeof null === 'undefined'; } for(var i = 0; i &lt; 1000; i++) console.log(foo()); 运行代码段隐藏结果展开摘要 应该打印1000次false,但在某些机器上将打印false多次迭代,然后true进行其余迭代。 为什么会这样呢?这只是一个错误吗?
109 javascript  v8 

4
JavaScript中对象/数组的性能如何?(专门针对Google V8)
与JavaScript(特别是Google V8)中的数组和对象相关的性能非常有趣。我在Internet上的任何地方都找不到有关此主题的详尽文章。 我了解某些对象使用类作为其基础数据结构。如果有很多属性,有时将其视为哈希表? 我也了解有时将数组像C ++数组一样对待(即快速随机索引,缓慢删除和调整大小)。而且,有时将它们更像对象(快速索引,快速插入/删除,更多内存)。而且,也许有时它们以链接列表的形式存储(即慢速随机索引,开始/结尾处的快速删除/插入) JavaScript中数组/对象检索和操作的精确性能是什么?(专门针对Google V8) 更具体地说,它对性能的影响: 向对象添加属性 从对象删除属性 索引对象中的属性 将项目添加到数组 从阵列中删除项目 索引数组中的项目 调用Array.pop() 调用Array.push() 调用Array.shift() 调用Array.unshift() 调用Array.slice() 任何文章或更多细节的链接也将不胜感激。:) 编辑:我真的很想知道JavaScript数组和对象如何在后台工作。另外,在什么情况下 V8引擎“知道”要“切换”到另一个数据结构? 例如,假设我用...创建一个数组 var arr = []; arr[10000000] = 20; arr.push(21); 这到底是怎么回事? 还是...这呢... ??? var arr = []; //Add lots of items for(var i = 0; i &lt; 1000000; i++) …

4
如何为node.js确定正确的“最大旧空间大小”?
我在理解Node.js如何基于参数的行为时遇到了一些麻烦max-old-space-size。 以我的情况为例,我正在运行两个t2.smallAWS实例(2GB RAM)。 不知道为什么,但是我确实设置了max-old-space-size=4096(4GB)。在这种情况下,节点会做什么?此配置是否可能导致内存分配失败? 如何max-old-space-size根据服务器资源确定正确的值? 我的应用程序在不断增加内存使用量,我试图了解有关节点内部的所有内容。
99 node.js  memory  v8 


4
v8 const,let和var对JavaScript性能的影响?
无论功能上的差异如何,相对于“ var”而言,使用新关键字“ let”和“ const”是否会对性能产生任何普遍或特定的影响? 运行程序后: function timeit(f, N, S) { var start, timeTaken; var stats = {min: 1e50, max: 0, N: 0, sum: 0, sqsum: 0}; var i; for (i = 0; i &lt; S; ++i) { start = Date.now(); f(N); timeTaken = Date.now() - start; stats.min = Math.min(timeTaken, stats.min); …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.