相关疑难解决方法(0)

为什么cgo的性能如此之慢?我的测试代码有问题吗?

我正在做一个测试:比较cgo和纯Go函数的执行时间各自运行1亿次.与Golang函数相比,cgo函数需要更长的时间,我对此结果感到困惑.我的测试代码是:

package main

import (
    "fmt"
    "time"
)

/*
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

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 …
Run Code Online (Sandbox Code Playgroud)

c performance go cgo

12
推荐指数
2
解决办法
6346
查看次数

标签 统计

c ×1

cgo ×1

go ×1

performance ×1