Tag: v8

如何更改node.js内存设置,以允许非常大(> 100GB)的内存

我有一个相当大的json文件包含几百万geojson点。 我可以在没有问题的情况下使用JSONParser读取它。 然后我试图用geojson-vt处理文件。 对于我使用的是700mb的testing文件集,当我将–max_old_space_size v8参数设置为8GB左右时,这个工作正常。 现在我正在尝试使用一个3GB的完整文件来处理单个状态并遇到问题。 看起来无论设置max_old_space_size参数有多高,在分配失败之前,垃圾收集器都会使用大约34GB,尽pipe我将max_old_space_size设置为50GB。 我读过一些其他可能被使用的v8参数。 这是我试图运行的最后一个命令: node –max_executable_size=5000 –max_old_space_size=54000 –max-semi-space-size=5000 -nouse-idle-notification –noconcurrent_sweeping app.js 这个命令失败了。 <— Last few GCs —> [27445:0x2e900d0] 587348 ms: Scavenge 29492.1 (31038.4) -> 29422.8 (31521.9) MB, 2092.6 / 0.0 ms allocation failure [27445:0x2e900d0] 591039 ms: Scavenge 30244.6 (31803.4) -> 30175.9 (32273.4) MB, 2070.4 / 0.0 ms allocation failure [27445:0x2e900d0] […]

发布大型NPM软件包

我试图发布一个私人的Nexus 3 nmp存储库大npm包,但操作失败,出现以下错误 npm ERR! node v7.7.4 npm ERR! npm v4.1.2 npm ERR! "toString()" failed npm ERR! npm ERR! If you need help, you may report this error at: npm ERR! <https://github.com/npm/npm/issues> 问题出现在V8级别,并在构build向Nexus发布请求时出现。 发布大型npm包不是一个好的做法,但是它是第三方的插件,我们需要它用于项目。 有没有办法configuration/修补V8支持更大的文件大小? 什么是上传npm包到nexus的请求格式,所以我可以尝试使用其他工具将包转换为编码的string?

是否有可能通过V8debugging协议观察对象创build?

当通过用户定义的构造函数在JavaScript中创build一个对象时,很容易在运行时创build对象的时候“挂钩”(比如在之前或之后做一些事情),因为构造函数只是一个函数。 事实上, 存在多个面向方面编程库来提供这个function。 但是,使用对象文字符号时,该对象似乎由运行时自动创build。 通过V8的debugging协议,可以创build这些对象或其他任何对象吗? 我的动机是能够跟踪应用程序中的数据stream。

如果Node进程本身忙,会发生什么情况

可能是这个问题很容易,但我只想知道当Node Js处理自己忙于某个进程时会发生什么情况,其他进程会发生什么情况。 所以这是我的情况。 我有2台服务器 端口3000上的AppServer JobServer在端口5000上 两者都运行在2核心和集群模式的机器上。 所以根据我的理解,将有2个AppServer实例和2个JobServer实例和内部节点js负载平衡 ,它需要调用哪个实例(纠正我,如果我错了)。 这个设置在ELB之后。 所以从外面我打电话给服务器: <ELB_URL>/<something>/1 —> this goes to AppServer.js <ELB_URL>/<something>/2 —> this goes to JobServer.js 案例1现在让我们假设,对于某些请求,AppServer会占用100%的CPU使用量。 而在那个时候,JobServer也停止工作,或者我应该说被阻止。 现在由于AppServer与JobServer不同,为什么JobServer根本没有响应,我的意思是它应该工作,对不对? 情况2或者,如果我采用的也是基于 V8引擎的基于NodeJ 的Chrome的情况下 ,如果一个选项卡被阻止,它也阻止其他选项卡,所以如果我认为1选项卡作为1服务器 ,如果AppServer被阻止显然会阻塞JobServer。 所以如果1是正确的阻塞JobServer是错误的,为什么发生? 如果情况2是正确的,那么我有一个答案,为什么JobServer被阻止。 请给出你的意见。 提前致谢。

记事不按预期工作?

我目前正在学习memoization。 作为一个简单的练习,我用斐波纳契实现了记忆。 但是,我有问题,为什么当我不重命名memoized函数,它需要比我重命名时慢。 看看代码。 这不能正常工作,并不正确caching。 function memoize(func) { const cache = {}; return function(args) { const cacheKeys = Object.keys(cache).map(el => +el); if (cacheKeys.includes(args)) { return cache[args]; } cache[args] = func(args); return cache[args]; }; } function wrapped_fibonacci(n) { if (n <= 2) { return 1; } return wrapped_fibonacci(n – 1) + wrapped_fibonacci(n – 2); } const […]

如何使用v8原生插件将c ++数组传递给node.js

我实现了一个使用unsigned char(uint8_t)内存创build缓冲区的c ++插件模块,并将其传递给node.js. —- c ++ addon.cpp —- void get_frame_buffer(const FunctionCallbackInfo<Value>& args){ Isolate* isolate = helper.get_current_isolate(); if (!args[0]->IsUint32()&& !args[1]->IsUint32()) { isolate->ThrowException(Exception::TypeError( String::NewFromUtf8(isolate, "Wrong arguments"))); return; } int width = args[0]->Uint32Value(); int height = args[1]->Uint32Value(); uint8_t* buf = new uint8_t[width * height * 4]; int length = width * height; memset(buf, 0, sizeof(buf)); for (int i […]

V8快照二进制文件/debugging的规格

我偶然发现NW,它能够加载“编译的JavaScript二进制文件”。 进一步阅读后(首先我认为这将只是一些缩小的JavaScript)我发现,文档是在谈论实际的二进制文件。 事实certificate,V8可以build立一个加载的JS源代码的快照,并将其转储到一个文件,然后可以将其加载回内存。 https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot 有没有关于这些二进制文件结构的规范? 有没有一种方法可以在反汇编器中加载这样的二进制文件(比如说IDA Pro)?

使用C ++中的数组调用一个带有可变数量参数的函数(如python的*运算符)

我想用C ++编写一个v8模块; 在那里,函数在数组中接收可变数目的参数。 我想采取该数组,并调用一个函数,如gettext和printf接收格式化的string,这是必要的参数。 问题是,如何获取一个数组并将这些元素作为参数发送给其中一个函数呢? 在Python中,我会做这样的事情: def the_function(s, who, hmany): print s%(who, hmany) the_args = ["Hello, %s from the %d of us", "world", 3] the_function(*the_args) 如何在C ++中完成? (我正在使用v8和node.js,所以也许有一个函数或类在我不知道的这些名称空间的某处)

Node.js框架在MongoDB中支持会话

我正在寻找一个node.js框架,它能够通过服务器端的cookie /存储跟踪用户会话。 存储必须在MongoDB中

在Node.js中查找内置的对象和函数

我试图找出什么是所有可用的默认情况下在节点,更具体地说,什么V8带来的表(如JSON对象的东西)不属于标准的JavaScript规范的一部分。 节点网站上的文档对它的绑定很好,但是在search了一下之后,我没有发现V8有什么额外function。 任何人都知道一两个好的资源?