准备工作:https://blog.youkuaiyun.com/rookie_is_me/article/details/85041439
运行时间参考:https://blog.youkuaiyun.com/rookie_is_me/article/details/88421373
python:22.940618753433228
cython(纯python风格)+python:13.06978225708008
pypy+cython:1.6705870628356934
import execjs
import os
# 设置环境
os.environ["EXECJS_RUNTIME"] = "nodejs"
node = execjs.get()
js = '''
function is_prime(num){
if(num<2){
return false
}else if(num==2){
return true
}else{
for(var i=2;i<num;i++){
if(num%i==0){
return false
}else if(i==num-1){
return true
}
}
}
}
function test(max_num){
//除以1000后,g各位数即为秒
var start=Date.now()/1000
for(var i=0;i<max_num;i++){
is_prime(i)
}
var end=Date.now()/1000
return end-start
}
'''
ctx = node.compile(js)
js1 = 'test("{0}")'.format(100000)
params = ctx.eval(js1)
print(params)
'''1.4169998168945312'''