C# 传递参数是否昂贵?

C# 传递参数是否昂贵?,c#,performance,xna,C#,Performance,Xna,我有一个在屏幕上绘制瓷砖的方法,在这个方法中,有一个调用同一个类中名为drawFloor的方法来绘制特定的瓷砖 在外部方法中,我在drawFloor调用的正上方启动了秒表,并在调用的正下方停止了秒表,得到的时间是2.4毫秒 然后我把秒表放在实际的drawFloor方法中,使秒表包含方法中的所有代码,得到的时间是1.9毫秒 我认为唯一能及时做出这种改变的是参数的传递,我不明白为什么这么昂贵。它只传递两个参数,一个传递给名为“camera”的自定义类,另一个传递给sprite批处理。不,它真的没有那

我有一个在屏幕上绘制瓷砖的方法,在这个方法中,有一个调用同一个类中名为drawFloor的方法来绘制特定的瓷砖

在外部方法中,我在drawFloor调用的正上方启动了秒表,并在调用的正下方停止了秒表,得到的时间是2.4毫秒

然后我把秒表放在实际的drawFloor方法中,使秒表包含方法中的所有代码,得到的时间是1.9毫秒


我认为唯一能及时做出这种改变的是参数的传递,我不明白为什么这么昂贵。它只传递两个参数,一个传递给名为“camera”的自定义类,另一个传递给sprite批处理。

不,它真的没有那么昂贵。几乎可以肯定的是,这只是你测量中的一个差异。好的微观标杆很难;完全有可能是您做了一些改变事情的其他事情,或者您的机器只是不太忙于做其他事情


方法调用和参数传递并不昂贵-当然不会达到半毫秒的程度。

请发布一个可复制的示例。过早优化是万恶之源。这种“计时”是在调试版本中完成的吗,或者在VS托管进程内部?@DanWebster您是在VS中运行的吗?@DanWebster您会发现方法调用转换的成本要高得多,而且如果您以这种方式运行,则计时非常不规则。如果您执行版本构建并在VS主机之外运行(即:Ctrl+F5而不是F5),则计时将完全不同。