文档章节

golang思考之运行速度

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

有些资料显示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
golang思考之运行速度之channel

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

学习吧
2015/10/20
101
0
Ruby vs Golang:四个维度对比,谁更胜一筹?

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

局长
08/15
0
11
golang思考之多核并行

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

学习吧
2015/10/17
127
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链入门教程以太源码分析accounts包简介

兄弟连区块链教程以太源码分析accounts包简介 accounts包实现了eth客户端的钱包和账户管理。 账号的数据结构: typeAccount struct {Address common.Address `json:"address"` // Ether...

兄弟连区块链入门教程
26分钟前
4
0
sed命令详解及运用

10月17日任务 9.4/9.5 sed 9.3、正则介绍 - sed命令(上) sed是流编辑器,默认不编辑源文件,是以行为单位从源文件抽取数据,进而处理再输出于屏幕上;可能有的人说那我直接vi不就好了嘛,但...

zgxlinux
28分钟前
2
0
iOS App “去评分” 功能的几种实现总结

通常 App 都会在它的设置页面或者关于页面添加一个“去评分”选项,或者在用户使用 App 过程中适当时机弹窗,引导用户跳转到 App Store 对当前 App 进行评分或者撰写评论。 绝大部分 App 实现...

秦无炎
34分钟前
1
0
Chrome 图片解码与 Image Decoding Hint

我在之前的一篇文章Chrome 图片解码与 Image.decode API,说明了为什么图片解码可能会导致非合成器动画的阻塞和如何使用 Image.decode API 来避免动画的阻塞。不过虽然 Image.decode API 给页...

全部原谅
34分钟前
0
0
java获取ip和地区

String s = HttpUtil.sendPost("http://pv.sohu.com/cityjson");JSONObject jsonObject = JSONObject.parseObject(s.substring(s.indexOf("{"), s.indexOf("}") + 1));jsonObject.get("c......

吴伟祥
35分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部