Java、PHP、Python、Erlang、Golang千万级内存数据插
⼊、查询性能对⽐
测试环境:
centos 6.3 64bit
php 7.2
java 1.86
python 3.4.8
Erlang/OTP 19 [erts-8.1]
golang 1.9.2
⾄强2.5G 4核 x 2
8 G内存
146g scsi x 2 raid 0+1
测试内容:
2000万数据,每条数据⼀个int id,⼀个string name
测试创建2000万数据的时间速度,再在这2000万数据中查询100条左右,计算查询速度。
所有的语⾔,搜索数据都不写算法、单进程(线程),利⽤语⾔数据类型⾃⾝的搜索能⼒,避免因为算法写得好坏⽽导致的偏差
结果:
详细结果:
测试环境:centos 6.3 64bit php 7.2
java 1.86
python 3.4.8
⾄强2.5G 4核 x 2
8 G内存
146g scsi x 2 raid 0+1
测试内容:
2000万数据,每条数据⼀个int id,⼀个string name
测试创建2000万数据的时间速度,再在这2000万数据中查询100条左右,计算查询速度。
所有的语⾔,搜索数据都不写算法,利⽤语⾔数据类型⾃⾝的搜索能⼒,避免因为算法写得好坏⽽导致的偏差
============================================================================================== php swoole.table,2000万数据的结果
============================================================================================== [root@lein swoole_test]# php7 swoole_table_test.php
======================
Create total use 55.112974882126
Real create time 30.919550180435
======================
Real create speed 662364.10 q/s
======================
Real Row count 19250719
======================
======================
116 use 0.000099
Query Speed 1172383.77 q/s
Avg query time use 0.000001 s
USER      PID %CPU %MEM    VSZ  RSS TTY      STAT START  TIME COMMAND
root    30836 98.8 62.9 5447960 5152052 pts/1 S+  09:30  1:00 php7 swoole_table_test.php
root    30838  0.0  0.0 106108  1156 pts/1    S+  09:31  0:00 sh -c ps aux|grep php
root    30840  0.0  0.0 103336  864 pts/1    S+  09:31  0:00 grep php
===========================================================================================
php 原⽣数组,8G内存不够⽤,下⾯是1000万数据的结果
============================================================================================== [root@lein swoole_test]# php7 php_array_test.php
======================
Create total use 25.156011104584
Real create time 13.448930025101
======================
Real create speed 761398.86 q/s
go和java后端开发劣势
======================
Real Row count 9626186
======================
======================
123 use 0.000109
Query Speed 1128882.70 q/s
Avg query time use 0.000001 s
root    30863 96.9 55.7 5089968 4568848 pts/1 S+  09:38  0:25 php7 php_array_test.php
root    30865  2.0  0.0 106108  1156 pts/1    S+  09:39  0:00 sh -c ps aux|grep php
root    30867  0.0  0.0 103336  864 pts/1    S+  09:39  0:00 grep php
=========================================================================================== java hashtable做数据存储,数据⽤string[]
============================================================================================== [root@lein swoole_test]# ./java_run.sh java_string_arr_data_test.jar
======================
Create total use 205.590419
Real create time 45.750554
======================
Real create speed 420792.19 q/s
======================
Real Row count 19251476
======================
106 use 0.000149
Query Speed 711409.40 q/s
Avg query time use 0.00000141 s
======================
[lein@lein ~]$ ps aux|grep java|test
root    31326  0.0  0.0 106108  1208 pts/1    S+  10:55  0:00 /bin/sh ./java_run.sh java_string_arr_data_test.jar
root    31327  472 78.2 10972376 6409940 pts/1 Sl+ 10:55  14:47 java -Xms512m -Xmx7012m -XX:PermSize=512m
-XX:MaxPermSize=2048m -jar java_string_arr_data_test.jar
=========================================================================================== java hashtable做数据存储,数据⽤class,结果浮动⽐较⼤,测试机并没有什么负载,列三组结果
============================================================================================== [root@lein swoole_test]# ./java_run.sh java_class_arr_data_test.jar
======================
Create total use 184.592579
Real create time 59.947452
======================
Real create speed 321138.54 q/s
======================
Real Row count 19251437
======================
105 use 0.000166
Query Speed 632530.12 q/s
Avg query time use 0.00000158 s
======================
[lein@lein ~]$ ps aux|grep java|grep test
root    31537  0.0  0.0 106108  1208 pts/1    S+  11:08  0:00 /bin/sh ./java_run.sh java_class_arr_data_test.jar
root    31538  455 71.0 10972372 5815956 pts/1 Sl+ 11:08  13:39 java -Xms512m -Xmx7012m -XX:PermSize=512m
-XX:MaxPermSize=2048m -jar java_class_arr_data_test.jar
======================
Create total use 157.527681
Real create time 47.727919
======================
Real create speed 403343.00 q/s
======================
Real Row count 19250722
======================
104 use 0.000153
Query Speed 679738.56 q/s
Avg query time use 0.00000147 s
======================
======================
Create total use 183.524738
Real create time 65.922781
======================
Real create speed 292012.09 q/s
======================
Real Row count 19250249
======================
101 use 0.000149
Query Speed 677852.35 q/s
Avg query time use 0.00000148 s
======================
[lein@lein ~]$ ps aux|grep java|grep test
root    31684  0.0  0.0 106108  1208 pts/1    S+  11:30  0:00 /bin/sh ./java_run.sh java_class_arr_data_test.jar
root    31685  456 70.8 10972372 5800084 pts/1 Sl+ 11:30  14:00 java -Xms512m -Xmx7012m -XX:PermSize=512m
-XX:MaxPermSize=2048m -jar java_class_arr_data_test.jar
===========================================================================================
python Dictionary做数据存储,数据⽤tuple ,
============================================================================================== [root@lein swoole_test]# python python_dict_turple_test.py
======================
Create total use 687.165280
Real create time 206.128578
======================
Real create speed 99355.461494 q/s
======================
Real Row count 20480000
======================
98 use 0.001468
Query Speed 66757.49 q/s
Avg query time use 0.000015 s
======================
root    32433 99.8 55.2 4678148 4526036 pts/1 S+  13:52  11:27 python python_dict_turple_test.py
root    32470  8.0  0.0 106108  1156 pts/1    S+  14:03  0:00 sh -c ps aux|grep python|grep test

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。