多种语言的性能测试
来源:互联网 发布:java教程视频百度云盘 编辑:程序博客网 时间:2024/05/23 22:01
因工作需要,学过几门编程语言,有些时候需要关注程序的运行速度问题,所以特意测试了几门语言的性能。
测试电脑的配置:
CPU: i3-2120 @3.3GHz
RAM: 16GB
OS: Win7 64bit sp1
测试程序:
测试的程序包含循环,函数调用,逻辑比较,数学运算,字符串处理等
1, Java
Java版本:
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
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); }}
运行:
javac Main.java
java Main
java time: 1793ms
2, JavaScript
Node版本:
v6.2.0
JavaScript程序:
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(); }
运行:
node a.js
nodejs time:5474ms
3, Lua
Lua版本:
lua有两个,一个是lua5.2,一个是luajit 2.1.0-beta2
lua程序:
function aaa(i) a = i + 1 b = 2.3 s = "abcdefkkbghisdfdfdsfds" if(a > b) then a = a+1 else b = b + 1 end if(a == b) then b = b + 1 end c = a * b + a / b - math.pow(a, 2) d = string.sub(s, 0, string.find(s, "kkb")) .. tostring(c) end t1 = os.clock() for i=0, 10000000, 1 do aaa(i)end t2 = os.clock()print("lua time: " .. (t2 - t1) * 1000 .. "ms")
运行:
luajit a.lua
lua time: 2531ms
lua52 a.lua
lua time: 28447ms
4, Python
Python版本:
Python 2.7.10
Python程序:
import sys, time, mathdef aaa(i):a = i + 1b = 2.3s = "abcdefkkbghisdfdfdsfds"if a > b:a = a + 1else:b = b + 1if a == b:b = b + 1c = a * b +a / b - math.pow(a, 2)d = s[0: s.find("kkb")] + str(c)t = time.time()for i in xrange(0, 10000000):aaa(i)print 'Python time: %.02f' % (time.time() - t)
运行:
python a.py
Python time: 24.35s
5, GameMonkey
GameMonkey版本:
GameMonkey v1.29.4
GameMonkey程序:
global aaa = function(i) { a = i + 1; b = 2.3; s = "abcdefkkbghisdfdfdsfds"; if(a > b) { a = a + 1; } else { b = b + 1; } if(a == b) { b = b + 1; } c = a * b + a / b - power(a, 2); d = s.Mid(0, s.Find("kkb")) + c.String();};TICK();for(i=0; i<10000000; i=i+1) { aaa(i);}print("GameMonkey time: ", TICK());
运行:
gme a.gm
GameMonkey time: 25.25s
6, PHP
PHP版本:
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); } ?>
运行:
php time: 10000ms 左右
7, 之后有其他语言的再补上
结论:
Java的速度快,JavaScritp跟随其后,PHP有所进步,其他的脚本语言差不多,值得一提的是Luajit 比 JS 的快。
- 多种语言的性能测试
- 多种磁盘对比的性能测试
- go语言的性能测试脚本
- go语言 功能测试和性能测试的示例
- 基于S3c2440的多种显示屏测试方案
- 一道Erlang测试题的多种解法
- Java中测试异常的多种方式
- Java中测试异常的多种方式
- Java中测试异常的多种方式
- 将C++ 看作多种语言的联合体
- 将C++ 看作多种语言的联合体
- Qt中实现多种语言的支持
- 学习多种编程语言的益处
- 队列的多种C语言实现
- 栈的多种C语言实现
- 网站多种语言的处理办法
- 熟悉多种编程语言的一个好处
- OC语言字符串的多种方法
- python 时间模块小结(time and datetime)
- Java的类加载机制原理
- react-native--基础(方法调用)
- cocoapods search 获取不到最新库的解决方法
- 鹅妈妈童谣
- 多种语言的性能测试
- 常用方法(1)------根据图片的url路径获得Bitmap对象
- 树的子结构
- ActiveMQ5.14.1使用PostgreSQL9.6
- react-native在windows下安装和配置
- UGUI拖拽事件的实现
- 单指移动光标手势,双指修改文本选区手势
- HTTP协议下可拖动时间轴播放FLV的实现(伪流媒体)
- 帝国软件SQL注入