Сравнение системных вызовов Go Win32 и cgo: есть ли у него одинаковые накладные расходы? - PullRequest
0 голосов
/ 28 мая 2020

В Windows это наиболее распространенный способ вызова функции Win32 (возобновленные шаги для вызова функции GetForegroundWindow ):

dllUser32 := syscall.NewLazyDLL("user32.dll")
GetForegroundWindow := dllUser32.NewProc("GetForegroundWindow")
hwnd, _, _ := syscall.Syscall(proc.GetForegroundWindow.Addr(), 0,
    0, 0, 0)

Я понимаю, почему cgo медленный , и этот cgo не используется с вызовами Win32, а с другим кодом C. Но теперь мой вопрос: как я могу сравнить приведенный выше код с вызовом cgo с точки зрения накладных расходов?

Используется ли cgo под капотом?

Есть ли у него те же накладные расходы, что и при вызове cgo?

...