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

标签 c performance haskell cairo

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

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

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

最佳答案

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

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

关于c - Cairo Graphics 在其他语言中比 c 慢吗?例如在 Haskell 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40264828/

相关文章:

c - 对于相同的值,double 中的字节散列是否始终相同?

javascript - Web 表单页面的性能或页面加载时间检查

html - 在样式表中使用 * 选择器来重置样式

haskell - Haskell 中数据类型和值构造函数使用相同的名称很常见吗?

c - 有适用于 Windows 的可移植 C 编译器吗?

c - 如何在C中检查用户输入是否是 double 的?

C 控制台输入

mysql - 用于查询速度的 SQL 索引字符串

haskell - 为什么我不能使 String 成为类型类的实例?

haskell - 如何使用 Happstack 创建 JSON Rest API? JSON 正文?