文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php7、java8、nodejs5与lua5.2的性能有哪些区别

2023-06-15 03:13

关注

小编给大家分享一下php7、java8、nodejs5与lua5.2的性能有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

简单比较一下php7和java8的计算和字符串操作性能。

机器:osx 10.10   intel corei5  4GB

php7.php:

<?php$t1 = microtime(true);for($i=0; $i<10000000; $i++){    aaa($i);}$t2 = microtime(true);echo 'php time:' . ($t2 - $t1)*1000 . "ms\n";function aaa($i){    $a = $i + 1;    $b = 2.3;    $s = "abcdefkkbghisdfdfdsfds";    if($a > $b){        ++$a;    }else{        $b = $b + 1;    }    if($a == $b){        $b = $b + 1;    }    $c = $a * $b + $a / $b - pow($a, 2);    $d = substr($s, 0, strpos($s, 'kkb')) . strval($c);}?>

java8.java:

public class Main{    public static void main(String[] args)    {        long t1 = System.currentTimeMillis();                for(int i=0; i<10000000; i++){            aaa((float)i);        }                long t2 = System.currentTimeMillis();                System.out.println("java time:" + String.valueOf(t2 - t1) + "ms");            }        static void aaa(float i){        float a = i + 1;        float b = 2.3f;        String s = "abcdefkkbghisdfdfdsfds";                if(a > b){            ++a;        }else{            b = b + 1;        }        if(a == b){            b = b + 1;        }                float c = (float) (a * b  + a / b - Math.pow(a, 2));                String d = s.substring(0, s.indexOf("kkb")) + String.valueOf(c);    }}

node5.js:

var t1 = (new Date()).getTime();    for(var i=0; i<10000000; i++){        aaa(i);    }        var t2 = (new Date()).getTime();        console.log("nodejs time:" + (t2 - t1) + "ms");                function aaa(i){        var a = i + 1;        var b = 2.3;        var s = "abcdefkkbghisdfdfdsfds";        if(a > b){            ++a;        }else{            b = b + 1;        }        if(a == b){            b = b + 1;        }        var c = a  * b + a / b - Math.pow(a, 2);                var d = s.substring(0, s.indexOf("kkb")) + c.toString();    }

lua5.2.lua

function aaa(i) a = i + 1 b = 2.3 s = "abcdefkkbghisdfdfdsfds"if(a > b) thena = a+1elseb = b + 1endif(a == b) thenb = b + 1end c = a  * b + a / b - math.pow(a, 2) d = string.sub(s, 0, string.find(s, "kkb")) .. tostring(c)endt1 = os.clock()for i=0, 10000000, 1 doaaa(i)end t2 = os.clock()print("lua time:" .. (t2 - t1) * 1000 .. "ms")

分别执行1000万次计算,依次执行以下命令:

java -jar java8jar

node node5.js

php php7.php

luajit lua5.2.lua

lua lua5.2.lua

结果:

php7、java8、nodejs5与lua5.2的性能有哪些区别

结论:由此可见就计算性能来说,java8 > nodejs5 > php7 > luajit > lua

java8是php7的5.2倍,nodejs5是php7的1.8倍,php7和luajit相当。

说lua是最快的脚本,那是往事了。静态语言的计算性能肯定比动态语言强很多。

对于密集计算,java是最好的选择;考虑到web的性能的瓶颈往往在数据库和IO,nodejs和php都是很好的选择。我个人喜欢php,无论从开发和部署,都比nodejs顺心点。

特别注意:如果function aaa(i)中没有参数i,那么nodejs是最快的,1000ms就完成了,估计nodejs对相同的执行结果进行了缓存。有好多人都犯了这个错误,测试下来就认为nodejs比java快多了。

看完了这篇文章,相信你对“php7、java8、nodejs5与lua5.2的性能有哪些区别”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯