用C语言编写的程序能否比用OCaml编写的程序更快并转换为C?

时间:2010-04-15 05:41:25

标签: c performance gcc ocaml

所以我有一些很酷的图像处理算法。我用OCaml写的。它表现很好。我现在可以使用这样的命令ocamlc -output-obj -o foo.c foo.ml将其编译为C代码(我有一种情况,我不能使用OCaml编译器为我的arcetecture bild我的程序,我只能使用specialy修改的gcc。所以我会使用像gcc -L/usr/lib/ocaml foo.c -lcamlrun -lm -lncurses这样的某种类型编译该程序,并在我的原型上运行。)

我想知道一般情况下,用C语言编写的程序能否比用OCaml编写的程序更快并转换为C?

2 个答案:

答案 0 :(得分:5)

是。但是关于这些问题的所有概括都只是概括,而你(以及其他人)将能够找到反例。

当然,这个答案本身就是一种概括。

答案 1 :(得分:4)

性能通常不是语言问题,而是用于解决问题的算法问题。对于任何问题,有一个荒谬的不同算法来解决它,在时间和空间上有不同的复杂性。

因此,您可以使用超慢速语言A中的O(n)和使用超快语言B的O(n ^ 2)解决方案。对于n,将存在一些阈值n_t。对于n <1,A将比B慢。 n_t,但对于n>更快; N_T。

即使实施相同的算法,也有另外两种不同的方法,影响复杂性的常数因素。因此,正如已经给出的那样,你的问题的答案肯定是肯定的,但它无济于事,因为这个问题本身毫无用处。