写段Go汇编, 汇编原型声明足够大的栈空间,比如1M, 然后用汇编将栈寄存器收小, 将空岀的空间给C用, 否则可能没C需要的足够栈空间, 然后通过汇编按C的传参规则调用C
【 在 harmonica 的大作中提到: 】
:
: 有个应用用到C写的lib库,用Cgo调了下,高频次的调用性能惨不忍睹,大部分耗在Cgo调用了。看了下原理go调用C是比较特殊;有个方案是把C编译成汇编再转成Go的汇编,再直接编到go的二进制里去。可对于一个很大的lib,这个方法看上去就很麻烦了。有没有更好的方案?
:
: --
: 发自xsmth (iOS版)
: --
:
发自「今日水木 on RVL-AL09」
--
FROM 223.104.3.*