C语言程序运行慢是什么问题,为什么cgo的表现如此缓慢?我的测试代码有什么问题吗?...

我正在做一个测试:比较cgo和pure Go功能的卓越时间每次运行1亿次.与Golang功能相比,cgo功能需要更长的时间,我对此结果感到困惑.我的测试代码是:

package main

import (

"fmt"

"time"

)

/*

#include

#include

#include

void show() {

}

*/

// #cgo LDFLAGS: -lstdc++

import "C"

//import "fmt"

func show() {

}

func main() {

now := time.Now()

for i := 0; i < 100000000; i = i + 1 {

C.show()

}

end_time := time.Now()

var dur_time time.Duration = end_time.Sub(now)

var elapsed_min float64 = dur_time.Minutes()

var elapsed_sec float64 = dur_time.Seconds()

var elapsed_nano int64 = dur_time.Nanoseconds()

fmt.Printf("cgo show function elasped %f minutes or \nelapsed %f seconds or \nelapsed %d nanoseconds\n",elapsed_min,elapsed_sec,elapsed_nano)

now = time.Now()

for i := 0; i < 100000000; i = i + 1 {

show()

}

end_time = time.Now()

dur_time = end_time.Sub(now)

elapsed_min = dur_time.Minutes()

elapsed_sec = dur_time.Seconds()

elapsed_nano = dur_time.Nanoseconds()

fmt.Printf("go show function elasped %f minutes or \nelapsed %f seconds or \nelapsed %d nanoseconds\n",elapsed_nano)

var input string

fmt.Scanln(&input)

}

结果是:

cgo show function elasped 0.368096 minutes or

elapsed 22.085756 seconds or

elapsed 22085755775 nanoseconds

go show function elasped 0.000654 minutes or

elapsed 0.039257 seconds or

elapsed 39257120 nanoseconds

结果表明,调用C函数比Go函数慢.我的测试代码有什么问题吗?

我的系统是:mac OS X 10.9.4(13E28)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值