gpt4 book ai didi

javascript - 为什么 v8::JSON::Parse 从 v8 比 NodeJS JSON::parse 慢得多?

转载 作者:行者123 更新时间:2023-11-30 05:21:47 25 4
gpt4 key购买 nike

我知道 NodeJS 构建在 V8 之上。这就是为什么它看起来如此奇怪,当我的 v8 周围的 c++ 包装器在 394 秒内解析 json 文件(2 Mb)而 NodeJS 脚本在 167 秒内解析相同的 json 文件时。

在C++中我这样调用parse json

v8::MaybeLocal<v8::Value> jsonData = v8::JSON::Parse(isolate, v8::String::NewFromUtf8(isolate, data));

在 NodeJS 中 JSON.parse(data) .

还有当我调用 v8::JSON::Parse 时在这样的循环中

for (int i = 0; i < 1000; i++) {
v8::JSON::Parse(isolate, v8::String::NewFromUtf8(isolate, data));
}

它吞噬了我所有的内存,OOM killer 杀死了我的应用程序。为什么它以这种方式工作?也许这个函数包含内存泄漏,或者我需要释放一些东西。

非常感谢!

最佳答案

我只敢打赌,在纯 v8 使用中,从“JSON::parse”返回的 json 会立即被销毁,而在 node.js 中,它会在循环外异步收集垃圾。尝试将返回的 json 分块到保留的 vector 中,看看性能是否提高。

关于javascript - 为什么 v8::JSON::Parse 从 v8 比 NodeJS JSON::parse 慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39937406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com