Vala生成的代码是否像正常手写的C代码一样优化?使用GObject系统是否会产生性能开销?
注意:在我的下一个C项目中,我正在研究是否使用Vala。这个项目不是GUI应用程序,而是一种解释器应用程序,必须在各种平台上运行。我使用gcc作为编译器。
Vala编译器生成的代码使用GObject库。如果需要避免使用GObject,建议使用aroop编译器,它使用vala解析器解析vala代码,但在生成的代码中不使用GObject。
Aroop编译器生成的代码使用对象池,该池经过优化可用于对象的创建和操作。对象集合具有数据导向特性。例如,可以标记对象,并且可以在非常高效的遍历对象时选择标记,而且这些对象在内存位置方面都非常接近。
aroop编译器用于编写shotodol项目,该项目没有自己的GUI。它具有模块和插件系统。它具有命令行界面,使人们能够编写服务器应用程序。使用shotodol编写的服务器应用程序示例在此处shotodol_web。我希望喜欢这个项目的人在项目页面分享他们的问题。
==
会导致strcmp
,这会稍微花费一些时间。不过,无论如何,在 C 中你也必须执行strcmp
;只是当你阅读代码时,它并不是显而易见的。 - apmasell