管理代码(C#)与Matlabs和C ++的速度

时间:2010-04-04 01:18:58

标签: c# c++ algorithm matlab edge-detection

我即将开始开发一个边缘检测系统(一旦我读完了几本书,我正在快速地这样做),但有一件事我想知道的是像Matlabs这样的应用程序的速度(可以将代码编译为C ++)与AFORGE.NET进行边缘检测。

非托管代码通常更快吗?

由于

3 个答案:

答案 0 :(得分:4)

对于某些事情,未管理的代码可能更快,但是如果不对它进行测试,它是否会对您的情况产生影响是不可能的。您可以尝试在C#和C ++中编写一个小但有代表性的问题子集来测量差异。当然,使其具有“代表性”(就性能特征而言)是一项挑战。

答案 1 :(得分:3)

您首先应考虑从提供可接受性能的语言和环境集中选择效率最高的语言/环境。生产力彻底胜过绝大多数计算问题的性能。

另一个高效的竞争者是具有numpy和scipy扩展的Python。它可以使用LAPACK,这大大减轻了使用Python的任何性能问题。

答案 2 :(得分:1)

首先是非托管代码通常更快,但多少?这取决于。在你的情况下,它应该没有太大的区别。

我可以告诉你这个,因为最近我的一个朋友使用AFORGE.Net库开发了一个边缘检测系统(用于实现运动检测系统)。我不记得他在抱怨表现。