我可以使用非托管C ++代码来降低C#项目的计算成本吗?

时间:2016-05-31 17:14:26

标签: c# c++-cli

我想使用c ++项目为c#项目做一些计算并返回结果。

我想知道如果我这样做,我是否会在c ++中获得更高效的计算速度? 如果我将本机代码包装在c ++ / cli中,它仍然会有效吗?

那里有什么例子吗? 就像一个简单的例子说你在C#中有两个双重值A和B,你如何让c ++项目接收A和B以及一个字符串值"再加上#34;或"次"计算并返回A + B或A * B?

2 个答案:

答案 0 :(得分:1)

使用Process.Start();生成优化程序。您将能够传递参数甚至读取输出。从这里开始:https://msdn.microsoft.com/en-us/library/53ezey2s(v=vs.110).aspx

答案 1 :(得分:1)

您的问题中有两个不同的问题:"我如何"和"我应该"。

如果您在使用"我如何"时遇到问题,请使用您拥有的特定代码发布问题,以及您遇到的问题。

"我应该"这有点模糊不清的问题:这在很大程度上取决于你尝试做的计算类型。这些问题往往没有一个正确的答案。 (另请注意,由于这个原因,这种类型的问题通常是Stack Overflow的解决方案,所以这个问题可能会被关闭。)

对于某些类型的计算,C ++编译器可能会生成比.Net Jitter更高效的代码。对于某些类型,它不会有所作为。 C ++也可以让你做一些事情,比如使用GPU来执行计算。

另外,请考虑编写此优化代码需要多长时间,以及您运行它的频率。如果这需要每月运行一次,可能需要几个小时才能运行。