我一直在使用Java开发图像处理应用程序,但最近对VALA产生了兴趣。原因是我相信我可以提高应用程序的性能(我的主要关注点在与C/C++库的交互上,因为似乎在Java中使用C/C++桥接时会有性能损失,如示例所示)。
背景知识:
- VALA会将代码转换成C代码,然后编译成本机机器代码。
- AOT(Java/Mono C#)也可以生成本机机器代码(而不是使用虚拟机),但仍需要运行时依赖库。
- 在某些情况下,使用虚拟机甚至可以比本机机器代码更快(因为可以通过JIT编译器进行优化)。
- 可以使用VALA生成可消费的C/C++库。
有一些问题一直困扰着我,但我找不到答案:
- 是否可以使用AOT编译器生成可消费的C/C++库?(我猜不行)。
- 生成的AOT二进制文件是否仍然存在桥接性能问题?(我猜是的)。
- 从VALA调用C/C++库的性能是否与从C中调用它们的性能相同?(我猜是的)。
有什么见解吗?