CNode

go语言开发nodejs原生模块

分享
Zzengming00发布于8 年前最后回复7 年前5 回复9616 浏览0 收藏

昨天研究node的原生模块,mmp官方github上居然有好几个不同的仓库给了好几个不同的demo,由于我不会c++所以关注napi的结果没一个能编译成功的!操 刚刚发现了这玩意,我觉得这玩意改改说不定大有潜力 https://github.com/charlieduong94/node-golang-native-addon-experiment

查看回复

回复 (5)

Z
zengming00#1·8 年前

上面那个在windows下使用napi无法编译,刚刚发现了更屌的 https://github.com/vladimirvivien/go-cshared-examples 在因为不同的平台扩展名是不同的,实际上他会自动去找,所以需要改改他的代码:

// var awesome = ffi.Library("./awesome.so", {
var awesome = ffi.Library("./awesome", {

然后在go编译时

go build -o awesome.dll -buildmode=c-shared awesome.go
// 用相同的测试发现,大约比js快三倍
$ node --version
v8.9.4
js: Time in ms to complete loop 2545 ms
go: Time in ms to complete loop 886 ms

在一些场景下可以考虑用go来开发

刚刚又在linux服务器上试了一下,有5倍多的差距

go build -o awesome.so -buildmode=c-shared awesome.go
$ node --version
v6.10.1
js: Time in ms to complete loop 6411 ms
go: Time in ms to complete loop 1149 ms
Z
zy445566#2·8 年前

mark一下,有时间试下

Z
zswnew#3·8 年前

有没有使用场景

来自酷炫的 CNodeMD

R
royalrover#4·8 年前

这块有点意思,不过需要考虑的是go与node这两个运行时的垃圾回收,对内存的控制以及程序运行(stop the world)可不太友好

R
ruobeiming#5·7 年前

mark一下试试

参与回复
登录后即可参与回复。登录