各大语言性能对比PK数据

这里我用的python版本是Python 3.6.2(64位),php版本是PHP 7.0.12(64位),node版本是v6.11.0(64位),Go 1.8.3(64位),C# 基于.Net 4.0,lua 5.1.4

对比

python

import time

calNum = 100000000

def test():
    sum = 0
    for x in range(1, calNum + 1):
        sum += x
    return sum

start = time.time()

test()

end = time.time()

print(end - start)

PHP

<?php

$calNum = 200000000;

function test() {
    $sum = 0;
    global $calNum;
    for ($i = 0; $i < $calNum; $i++) {
        $sum += $i;
    }
    return $sum;
}

$start = time();

test();

$end = time();

echo ($end - $start);

nodeJS


let calNum = 200000000;

function test() {
    let sum = 0;
    for (var i = 0; i < calNum; i++) {
        sum += i;
    }
    return sum;
}

let start =  new Date().getTime();

test();

let end =  new Date().getTime();

console.log((end - start) / 1000);

Golang

package main

import (
    "fmt"
    "math"
    "time"
)

var calNum = 200000000

func test() int {
    sum := 0
    for i := 0; i < calNum; i++ {
        sum += i
    }
    return sum
}

func main() {
    start := time.Now().UnixNano()
    test()
    end := time.Now().UnixNano()
    fmt.Println(float64(end - start) / math.Pow(10, 9))
}

C#

 private static int calNum = 100000000;

        static int test()
        {
            int sum = 0;
            for (int i = 0; i < calNum; i++)
            {
                sum += i;
            }
            return sum;
        }

        static void Main(string[] args)
        {
            double start = ConvertDateTimeInt(DateTime.Now);
            test();
            double end = ConvertDateTimeInt(DateTime.Now);
            Console.WriteLine(end - start);
            Console.ReadLine();
        }

        /// <summary>
        /// DateTime时间格式转换为Unix时间戳格式
        /// </summary>
        /// <param name="time"> DateTime时间格式</param>
        /// <returns>Unix时间戳格式</returns>
        public static double ConvertDateTimeInt(DateTime time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            return (time - startTime).TotalSeconds;
        }

lua

calNum = 200000000

function test()
    local sum = 0
    for i=0,calNum - 1 do
        sum = i + sum
    end
    return sum
end

local start = os.time()
test()
local endTime = os.time()

print(endTime - start)

执行时间(1亿次,2亿次)

python

C:\Users\mh\Desktop>python cal.py
7.873001337051392

C:\Users\mh\Desktop>python cal.py
17.40298104286194

PHP

C:\Users\mh\Desktop>php cal.php
5
C:\Users\mh\Desktop>php cal.php
13

PHP 7.1(新下载的)

C:\Users\mh\Desktop>php cal.php
5
C:\Users\mh\Desktop>php cal.php
10

nodeJS

C:\Users\mh\Desktop>node cal.js
1.288

C:\Users\mh\Desktop>node cal.js
2.603

Golang

C:\Users\mh\Desktop>go run cal.go
0.0519903

C:\Users\mh\Desktop>go run cal.go
0.1080017

C#

0.685999155044556

1.52999567985535

lua(just for fun)

C:\Users\mh\Desktop>cal.lua
1

C:\Users\mh\Desktop>cal.lua
2

PHP7还是比python3.6快的,不过在脚本语言中node更快,Go挺快的

原文地址:https://www.cnblogs.com/zgblog/p/10346176.html

时间: 2024-10-03 15:48:18

各大语言性能对比PK数据的相关文章

开发语言性能对比,C++、Java、Python、LUA、TCC

一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修改script.c,运行TccTest1.exe即可看到修改效果,无需编译!!! 链接:http://pan.baidu.com/s/1kUVGGwJ 密码:mgpx C++(VS2017) java8.2 Python2.7-3.5.2 aardio(LUA) TCC

Elasticsearch与Postgresql大数据检索性能对比

Elasticsearch与Postgresql数据检索性能对比与融合一般来说,影响数据库最大的性能问题有两个,一个是对数据库的读写操作,一个是数据库中的数据太大导致操作慢,对于前者我们可以适当借助缓存来减少一部分读操作,而针对一些复杂的报表分析和搜索可以交给hadoop和elasticsearch,对于写并发大,读也并发大,我们可以考虑分库分表,主从读写分离或者两者结合等方式来提高并发性和时效性,例如PG大并发写,大数据查看可以用elasticsearch与PG数据同步来读,可以启到很好的效果

使用Exp和Expdp导出数据的性能对比与优化

1.前言 数据备份对信息系统的安全运行至关重要,我们的用户中,使用RMan或第三方专业备份软件的越来越多,但是很多用户仍然保留了传统的Exp作为备份策略的一部分,主要是由于这种备份方式简单易用,而且恢复到其他机器上也很方便,所以,虽然有其他的备份方式,但是Exp方式仍然会同时使用,甚至还有不少的用户只有这种备份方式. 随着用户的数据量增长,Exp导出方式存在的问题也日渐突出,主要就是耗时长,有的甚至超过3个小时,加上常见的后台自动作业:汇总表的计算,自动费用的计算,统计信息的收集等工作,使一个晚

Oracle DBA数据库高级工程师(下部)SQL语言+性能优化+数据复制

套餐介绍: Oracle DBA数据库高级工程师(下部)SQL语言+性能优化+数据复制 http://edu.51cto.com/pack/view/id-973.html 描述 Oracle DBA数据库高级工程师培训课程是风哥独自研发的精品实战课程,本路线图主要是让大家快速就业.高薪就业.课程内容以实战为主(占98%),理论为辅(占2%).本课程知识全面系统实用,结合风哥十年Oracle经验,囊括企业用到的所有知识点,课程包含大量实战案例,涉及Oracle核心技术及底层研究,从零开始学习Or

求斐波那契数列第n位的几种实现方式及性能对比(c#语言)

在每一种编程语言里,斐波那契数列的计算方式都是一个经典的话题.它可能有很多种计算方式,例如:递归.迭代.数学公式.哪种算法最容易理解,哪种算法是性能最好的呢? 这里给大家分享一下我对它的研究和总结:下面是几种常见的代码实现方式,以及各自的优缺点.性能对比. Iteration using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; public class Progr

[1]Nginx_lua的应用及性能对比

对于Web高性能服务器上的选择,这个是很多人头痛的问题.对于Apache.lighttpd.Nginx都用他们优点,在什么情况下我们如何去选择适合自己的Web高性能服务器,如何去搭建一个适合自己的架构环境,这个是一个很麻烦的事情.接下来,在ADC 2012(Alibaba Developer Conference 2012)大会上,51CTO记者有幸采访到了一淘数据平台与产品部技术专家--清无(花名),为我们解读Nginx_lua的一些优势及劣势,以及在高性能服务器上的选择. AD: 对于Web

Java常用消息队列原理介绍及性能对比

消息队列使用场景 为什么会需要消息队列(MQ)? 解耦  在项目启动之初来预测将来项目会碰到什么需求,是极其困难的.消息系统在处理过程中间插入了一个隐含的.基于数据的接口层,两边的处理过程都要实现这一接口.这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 冗余  有些情况下,处理数据的过程会失败.除非数据被持久化,否则将造成丢失.消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许多消息队列所采用的"插入-获取-删除"范式中,在把一

MyISAM与InnoDB两者之间区别与选择,总结,性能对比

1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合. 2.InnoDB:支持事务安全的引擎,支持外键.行锁.事务是他的最大特点.如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况. 一.表锁差异 MyISAM:

MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比

原文:MyISAM与InnoDB两者之间区别与选择,详细总结,性能对比 1.MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合. 2.InnoDB:支持事务安全的引擎,支持外键.行锁.事务是他的最大特点.如果有大量的update和insert,建议使用InnoD