2012-10-03 20 views
2

多年来,人们都听说C++速度很快,所以它对于图像处理来说是很好的例子。使用C++ dll函数来提高C#项目的性能

如果我正在C#中开发一个需要做图像处理的系统,并且我想提高你的性能,那么最好的方法是什么?

1 - 做这一切在C#,做图像处理功能与“非托管”拥抱

2 - 写在C去处理图像++和导入此功能,我的C#代码的功能?

还有问题?

哪一个提高性能?

+0

哦成本如果仅仅优化是那么容易......对于初学者来说,一个可以(很多人会)编写*每一个非常低效的代码* 语言。 – delnan

+0

这对Stack Overflow来说非常广泛,这里有很多讨论的空间。你能把这个缩小到一个可以回答的问题吗?否则它可能会被关闭。 –

+0

好的蒂姆邮政,我编辑我的问题,我认为这是一般,但我不知道另一个最好的方式来问这个。 – Ewerton

回答

2

其考虑在C++到C#调用和IL代码之间进行权衡以生成机器代码。

  1. C#生成IL代码,它将在运行时转换为机器码。机器代码生成将会有一定的成本。
  2. 从C#开始,您可以调用C++ DLL的方法。加载C++方法并调用它会产生一些代价。

现在你需要比较1 & 2.

1

我不知道你需要做什么样的图像处理操作的,但如果你想获得一个非常不错的表现,你可以使用CUDA和OpenCL的(图形卡上编程)