文档章节

golang思考之运行速度

 学习吧
发布于 2015/10/17 00:10
字数 307
阅读 149
收藏 0

有些资料显示golang的运行速度很慢,比Java慢,有时比Python慢。学习吧测试发现golang的运行速度和Java差不多。

首先,使用各种语言编写同一个CPU密集的程序sum。

C(或C++)

#include <stdio.h>
#include <stdint.h>
#include <time.h>

int main(void){
    int iN; 
    int64_t jN; 
    scanf("%d %ld",&iN,&jN);
    time_t timeBegin=time(NULL);
    int i;
    for(i=0;i<iN;++i){
        int64_t sum=0;
        int64_t j;
        for(j=0;j<jN;++j){
            sum+=j;
        }
        printf("sum:%ld\n",sum);
    }   
    time_t timeEnd=time(NULL);
    printf("%ds\n",(int)(timeEnd-timeBegin));
    return 0;
}

Golang

package main

import "fmt"

func main() {
    for i := 0; i < 10; i++ {
        var sum int64 = 0
        var j int64
        for j = 0; j < 1000000000; j++ {
            sum += j
        }
        fmt.Println("sum:", sum)
    }   
}

Java

package hello;

public class Hello {
	public static void main(String[] args) {
		long startTime = System.currentTimeMillis();
		for (int i = 0; i < 10; ++i) {
			long sum = 0;
			for (long j = 0; j < 1000000000; ++j) {
				sum += j;
			}
			System.out.println("sum:" + sum);
		}
		long endTime = System.currentTimeMillis();
		System.out.println((endTime - startTime) / 1000.0 + "s");
	}
}

Python

#!/usr/bin/env pypy
#coding:utf-8

for i in range(10):
    s=sum(range(1000000000))
    print('sum:%d'%s)

运行速度统计:

编程语言    第一次时间    第二次时间
C                6s           6s
Golang       6.327s       6.159s
Java          6.03s       5.981s
Python      15.860s      13.184s

结论,golang的运行速度和Java差不多,比Python快。

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 20
码字总数 6841
作品 0
海淀
程序员
Gor 3.7.0 2014 年尾特别版,极速博客引擎

Gor 3.7.0 2014 年尾特别版,更新内容如下: 修正好多issue 支持用文件名来声明文章日期 得益于上游markdown库的更新, 支持更多markdown特性 支持预览功能了 修正了与golang 1.4的兼容性问题...

wendal
2014/12/29
2.4K
4
极速博客引擎--Gor

gor 是使用 golang 实现的类Ruhoh静态博客引擎(Ruhoh like),基本兼容ruhoh 1.x规范. 相当于与ruhoh的官方实现(ruby实现), 有以下优点: 速度完胜 -- 编译wendal.net近200篇博客,仅需要1秒 安装...

wendal
2013/01/20
3.3K
0
Ruby vs Golang:四个维度对比,谁更胜一筹?

软件应用程序的快速增长已经不再只是一件其本身受欢迎的事情了,它更是带来了深刻改善所有行业业务流程的真正机会。所以,对于企业、行业来说,通过合适的编程创建出出色的软件解决方案成为了...

局长
08/15
0
11
golang思考之运行速度之channel

golang channel测速程序: C语言有锁并发队列: C语言无锁并发队列: TCP: 速度: 测试暂时完成了,留下了很多问题: 1、为什么golang的channel比C语言快?如果C语言在内核态实现并发队列呢...

学习吧
2015/10/20
101
0
golang思考之多核并行

有些资料显示golang实现了并发,离多核并行还有很远。学习吧测试发现golang实现了多核并行。 运行时间:6.254s。 多核并行: 运行时间:2.057s。系统监视器显示4个核都运行到了100%。...

学习吧
2015/10/17
127
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spark core基础

Spark RDD的五大特性 RDD是由一系列的Partition组成的,如果Spark计算的数据是在HDFS上那么partition个数是与block数一致(大多数情况) RDD是有一系列的依赖关系,有利于Spark计算的容错 RDD中每...

张泽立
32分钟前
0
0
如何搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已...

Java大蜗牛
47分钟前
0
0
ffplay 播放 rtsp地址

D:\ffmpeg\ffmpeg\bin ffplay.exe 播放rtsp地址: ffplay.exe -rtsp_transport tcp "rtsp://ip:port/pag://172.16.0.11:7302:33000000001310001748:1:SUB:TCP?cnid=2&pnid=2&auth=50&streamf......

yizhichao
53分钟前
3
0
[Jekyll] permalink -- 修改文章的链接地址

在我的个人博客中访问这篇文章时,你有注意到地址栏中显示的地址吗?它应该是这样的: https://cometeme.github.io/jekyll/2018/08/Jekyll-为文章设置永久链接.html 。打开其他的文章,可以看...

cometeme
53分钟前
0
0
启动mango数据库批处理

::启动mango数据库set dbdir=c:\mongodb\dataif not exist %dbdir% md %dbdir%c:cd c:\mongodbmongod.exe --dbpath %dbdir%...

江湖令
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部