quickjs比v8好用太多

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:03   1587   0

quickjs是bellard大神的作品,小巧(也就1-2M的样子)易用,非常方便将javascript转换为可执行程序或c,速度有可能比v8稍微差一点。

-r--r--r-- 1 user users 1552898 Aug 17 15:04 libquickjs.a
-r--r--r-- 1 user users 1169504 Aug 18 07:36 libquickjs.so
-r--r--r-- 1 user users 1163237 Aug 18 12:33 qjs.dll


-rwxr-xr-x 1 user users 1195360 Aug 17 15:04 qjs
-rwxr-xr-x 1 user users 1010408 Aug 17 15:04 qjsc
lrwxrwxrwx 1 user users       3 Aug 17 15:04 qjscalc -> qjs
-rwxrwxrwx 1 user users 1046016 Aug 18 12:33 qjsc.exe
-rwxrwxrwx 1 user users 1091072 Aug 18 12:33 qjs.exe

下面是一个简单的javascript例子:

/*demoJS.js*/

import * as std from 'std';

function demoJS(args) {
 if(args.length<2)
 {
  print("usage: name food\n");
  return;
 }
 var file = std.open('test_outfile.txt','w');
 var r="My name is " + args[0] + ". My favourite food is " + args[1] + ".";
 console.log(r);
 file.puts(r);
 file.close();

}
var args=scriptArgs;
args.shift();
demoJS(args)

/*end demoJS.js*/

在linux系统下:

(1)可以直接运行
qjs demoJS.js "John" "fish"
My name is John. My favourite food is fish.

(2)也可以编译为可执行文件:
qjsc -o demoJS demoJS.js

在windows系统下:

象linux一样可以直接运行,但直接编译有些问题,会报错:

Executable output is not supported for this target

但我们可以这样做:

编译成c语言:

qjsc -e -o demoJS.c demoJS.js

然后按照c语言正常编译:

gcc -o demoJS demoJS.c -O3 -lquickjs -pthread
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP