代码之家  ›  专栏  ›  技术社区  ›  vishvAs vAsuki

在Matlab代码中使循环有效:使用C还是Java?

  •  2
  • vishvAs vAsuki  · 技术社区  · 15 年前

    我想加速一些涉及循环的matlab代码。一个常见的解决方案是用C编写循环并从matlab调用它。然而,我想知道是否可以从用Java实现循环中获得类似的好处—也许即时编译会使它更快?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Jonas    15 年前

    在开始使用外部代码之前:是否预先分配了变量?你能把你的循环矢量化吗?虽然Matlab实时编译器在过去几年中已经有了很大的改进,但是矢量化仍然带来了显著的改进。另外,请注意,许多Matlab函数(在编辑器中打开它们时看不到它们的代码)都是用C或Fortran实现的,因此您可能不会看到显著的速度提高。

    如果你不能通过更好地在Matlab中编写Matlab代码来加速你的代码,并且如果重新实现看起来确实可能给你带来任何好处,那么C可能是最快的,尽管Java可能不会落后太远(这又取决于你想加速的代码——如果你把它发布在这里,这可能是个好主意)。如果您对Java比C更熟悉,我建议您尝试使用Java。

        2
  •  1
  •   zellus    15 年前

    因此,人们总是渴望帮助优化代码。一旦您发现了 profiling

    一个显著的MATLAB特性是它能够编写JAVA脚本。用JAVA编写“优化”代码,并在MATLAB中实例化该类。使用C你被迫写一个包装器,这不是无缝的。