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)
總結
以上是生活随笔為你收集整理的C语言程序运行慢是什么问题,为什么cgo的表现如此缓慢?我的测试代码有什么问题吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言怎样判断键盘 输入法,如何快速的认
- 下一篇: android html audio,h