2

多年来,一直听说 C++ 速度很快,因此,它非常适合图像处理,例如。

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

1 - 全部在 C# 中完成,并执行“非托管”所包含的图像处理功能

2 - 在 C++ 中编写处理图像的函数并将此函数导入我的 C# 代码?

另一个问题?

哪一个提高了性能?

4

2 回答 2

2

它是 C++ 到 C# 调用和 IL 代码到机器代码生成之间的权衡。

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

现在您需要比较 1 和 2 的成本。

于 2012-10-03T13:44:21.530 回答
1

我不知道你需要做什么样的图像处理操作,但如果你想获得很好的性能,你可以考虑使用CUDA或OpenCL(在显卡上编程)

于 2012-10-03T13:34:43.353 回答