-
-
[原创]javascript、ruby和C性能一瞥(3) :上汇编
-
发表于: 2015-4-16 18:26 12433
-
在博文(1)和(2)里分别用了4中方式写一个素数筛选的算法,分别是javascript in browser、node.js、ruby和c;最终的结果是c最快,node.js其次,js in b虽然也不慢,但极不稳定,所以排在第三,ruby最慢。
现在我们在linux64中用汇编语言重写sieve算法,看看动用最终的武器:汇编语言,我们能不能进一步优化素数筛选算法。
如果忘了算法逻辑,不要紧,下面分别再次贴出node.js、ruby以及c的sieve代码:
首先是node.js:
function sieve(n){ var a = new Int8Array(n+1); var max = Math.floor(Math.sqrt(n)); var p = 2; while(p <= max){ for(var i=2*p;i<=n;i+=p) a[i] = 1; while(a[++p]); /* empty */ } while(a[n]) n--; return n; }
def sieve(n) a = Array.new(n+1); max = Math.sqrt(n).to_i; p = 2; while p<=max do i = 2*p while i<=n do a[i] = 1 i+=p end while a[p+=1] == 1 do end end while a[n] do n-=1 end n end
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏记录
参与人
雪币
留言
时间
飘零丶
为你点赞~
2024-5-31 04:54
shinratensei
为你点赞~
2024-5-31 04:44
一笑人间万事
为你点赞~
2023-2-27 02:25
赞赏
他的文章
看原图
赞赏
雪币:
留言: