Cairo Graphics 在其他语言中比 c 慢吗?例如在 Haskell 中?

Is Cairo Graphics slower in other languages than c? In Haskell for example?

我在 c 中使用 Cairo Graphics 有一段时间了,我想在更高级的语言中使用它(即 Haskell,我也尝试过 Python ).它有效,但说实话,我脑子里并不清楚它在内部是如何工作的。

编译我的 Haskell 源代码时,目标文件中与 cairo 相关的部分是否与从 c 源代码编译的相同?

c中的cairo_line_to (cr, 100, 100)会不会和Haskell中的LineTo 100 100编译成一样的机器码?性能会一样吗?

大多数语言调用 C 库都会产生一些 FFI 开销。每次调用 C 函数时,这是一个很小的(通常是)恒定的开销,但如果您进行大量调用,它就会加起来。

这并不是调用 C 所独有的,因为它的价值。内存管理系统的任何交叉都可以完成这项工作。这就是为什么现代 OpenGL 建议尽可能多地将数据以大块的形式发送到图形内存的调用,而不是一次一个三角形。