我注意到我的应用程序中出现了异常行为,但我不明白为什么会发生这种情况。
我有一个我经常调用的 C# 方法(我们称之为 methodC#)。在此方法的主体中,只有一条指令是对 c++/cx 方法的调用(我们称之为 methodCx)。
methodCx 的平均执行时间小于 1ms。methodC#的平均执行时间是3ms。
这意味着从 C# 调用 methodCx 的平均开销约为 3ms。
有时,当我的应用程序的负载很高时(由于在其他线程上进行了计算),这种开销甚至可以跳到 80 毫秒。我不明白为什么会这样。我知道由于负载的原因,代码执行速度可能会减慢,但似乎只有从 c# 调用 cx 方法才会急剧增加。非 c# -> cx 调用似乎没有受到影响(至少没有那么严重)。有人可以解释这种行为。至少可能提示在哪里寻找罪魁祸首。
提前致谢
Edit1 methodCx 将 3 个单独的浮点数作为参数。它返回 Cx 对象。
Edit2 我在 C# 中使用秒表计时,在 c++/cx 中使用性能计数器计时。结果是一样的。methodCx 的执行时间只有几百微秒,而在其他线程的高负载下,methodC# 的执行时间甚至可以达到 100 毫秒。