12

Haxe 编译的代码在性能上与其不同的目标相比如何?

例如,来自 Haxe 的 PHP 是比原始 PHP 代码快还是慢?

Javascript 呢?闪光?C++?等等。

那里有任何严肃的基准吗?

4

2 回答 2

16

我不知道那里有什么基准,而且它肯定会因目标平台而异,所以我想这只是答案的一半。但这里有一些一般要点:

  • 如果您搜索,您可以找到几个比较 OpenFL/NME 和 Flash 的基准。一个例子就是这个

  • 对于 CPP,我被告知事情比常规 C++ 稍慢。我想手工优化的 C++ 会变得更快。来自 HXCPP 的创建者的示例基准测试here

  • 对于 JS,我知道 Haxe 坚持相对最佳的性能实践。例如,Haxe 的严格类型特性往往会导致 Javascript JIT 编译器的最佳性能,因此 Haxe 代码与编写良好的 Javascript 相当。(注意,我在这里谈论的是普通的 JS,而不是 canvas / openFL 图形的东西——显然这需要你自己的基准测试)。

  • 对于 PHP,我不确定 Haxe 生成的 PHP 与手写 PHP 相比如何。我可以告诉您的是,您几乎可以从 PHP 无缝切换到 Neko(两者都可以轻松地在 apache 上运行),并且您将获得比手写 PHP 快得多的代码。您的瓶颈将来自数据库访问等,而不是代码执行。

  • 对于 flash,四处搜索,您可能会找到基准。Haxe 为您提供了一些编译时特性,例如泛型、类型安全和函数内联,这有助于提高运行时性能。

全面的

Haxe 最大的性能提升不是来自于将其与使用相同语言的手写代码进行比较,而是来自能够毫不费力地切换到更快的平台。用 PHP 编写,切换到 neko -> 巨大的加速。用 Flash 编写,切换到 OpenFL (C++) -> 巨大的加速。

希望其他人可以发布一些指向更相关基准的链接:)

于 2013-08-14T02:02:40.233 回答
2

你可以看看这篇文章。它比较了 Haxe 编译器。PHP 似乎是 5 个目标编译器中最慢的。 https://hal.inria.fr/hal-01356849/document

于 2017-05-21T11:13:57.253 回答