草庐IT

OPTIMIZATION

全部标签

c# - 使用 XNA 绘制矩形

我正在开发游戏。我想在发生某些事情时突出显示屏幕上的一个点。我创建了一个类来为我做这件事,并找到了一些代码来绘制矩形:staticprivateTexture2DCreateRectangle(intwidth,intheight,Colorcolori){Texture2DrectangleTexture=newTexture2D(game.GraphicsDevice,width,height,1,TextureUsage.None,SurfaceFormat.Color);//createtherectangletexture,,butitwillhavenocolor!lets

C#.NET : How to check if we're running on battery?

我想成为一名优秀的开发者公民,paymytaxes,并在我们通过远程桌面运行或使用电池运行时禁用某些东西。如果我们在远程桌面上运行(或等效地在终端服务器session中),我们必须禁用动画和双缓冲。您可以通过以下方式检查://////Indicatesifwe'rerunninginaremotedesktopsession.///Ifweare,thenyouMUSTdisableanimationsanddoublebufferingi.e.Payyourtaxes!/////////publicstaticBooleanIsRemoteSession{//Thisisjustaf

C#.NET : How to check if we're running on battery?

我想成为一名优秀的开发者公民,paymytaxes,并在我们通过远程桌面运行或使用电池运行时禁用某些东西。如果我们在远程桌面上运行(或等效地在终端服务器session中),我们必须禁用动画和双缓冲。您可以通过以下方式检查://////Indicatesifwe'rerunninginaremotedesktopsession.///Ifweare,thenyouMUSTdisableanimationsanddoublebufferingi.e.Payyourtaxes!/////////publicstaticBooleanIsRemoteSession{//Thisisjustaf

c# - 我可以给编译器/JIT 什么优化提示?

我已经分析过了,现在我希望从我的热点中挤出所有可能的性能。我知道[MethodImplOptions.AggressiveInlining]和ProfileOptimizationclass.还有其他的吗?[编辑]我刚刚发现[TargetedPatchingOptOut]没关系,显然thatoneisnotneeded. 最佳答案 是的,还有更多技巧:-)实际上,我对优化C#代码进行了大量研究。到目前为止,这些是最重要的结果:直接传递的Func和Action通常由JIT'ter内联。请注意,您不应将它们存储为变量,因为它们随后会被称

c# - 我可以给编译器/JIT 什么优化提示?

我已经分析过了,现在我希望从我的热点中挤出所有可能的性能。我知道[MethodImplOptions.AggressiveInlining]和ProfileOptimizationclass.还有其他的吗?[编辑]我刚刚发现[TargetedPatchingOptOut]没关系,显然thatoneisnotneeded. 最佳答案 是的,还有更多技巧:-)实际上,我对优化C#代码进行了大量研究。到目前为止,这些是最重要的结果:直接传递的Func和Action通常由JIT'ter内联。请注意,您不应将它们存储为变量,因为它们随后会被称

C#:参数关键字与列表

使用params关键字与使用List作为某些c#函数的输入有什么优缺点?主要是性能方面的考虑和其他权衡。 最佳答案 params关键字是由C#编译器处理的语法糖。在引擎盖下,它实际上在转动voidFoo(paramsobject[]a){...}Foo(1,2,"THREE");进入voidFoo(object[]a){...}Foo(newobject[]{1,2,"THREE"})从您所询问的性能角度来看,params调用速度更快,因为创建数组比创建List要快一些。上面的两个代码段之间没有性能差异。

C#:参数关键字与列表

使用params关键字与使用List作为某些c#函数的输入有什么优缺点?主要是性能方面的考虑和其他权衡。 最佳答案 params关键字是由C#编译器处理的语法糖。在引擎盖下,它实际上在转动voidFoo(paramsobject[]a){...}Foo(1,2,"THREE");进入voidFoo(object[]a){...}Foo(newobject[]{1,2,"THREE"})从您所询问的性能角度来看,params调用速度更快,因为创建数组比创建List要快一些。上面的两个代码段之间没有性能差异。

c# - 使用静态 Regex.IsMatch 与创建 Regex 实例

在C#中你应该有这样的代码:publicstaticstringimportantRegex="magic!";publicvoidF1(){//codeif(Regex.IsMatch(importantRegex)){//codezinhere.}//morecode}publicvoidmain(){F1();/*somestuffhappens......*/F1();}或者您应该保留一个包含重要模式的Regex实例?使用Regex.IsMatch的成本是多少?我想每个Regex实例中都会创建一个NFA。据我了解,这个NFA的创建非常重要。 最佳答案

c# - 使用静态 Regex.IsMatch 与创建 Regex 实例

在C#中你应该有这样的代码:publicstaticstringimportantRegex="magic!";publicvoidF1(){//codeif(Regex.IsMatch(importantRegex)){//codezinhere.}//morecode}publicvoidmain(){F1();/*somestuffhappens......*/F1();}或者您应该保留一个包含重要模式的Regex实例?使用Regex.IsMatch的成本是多少?我想每个Regex实例中都会创建一个NFA。据我了解,这个NFA的创建非常重要。 最佳答案

c# - "Cannot evaluate expression because the code of the current method is optimized."是什么意思?

我写了一些有很多递归的代码,这需要相当多的时间才能完成。每当我“暂停”运行以查看发生了什么时,我都会得到:Cannotevaluateexpressionbecausethecodeofthecurrentmethodisoptimized.我想我明白这意味着什么。然而,令我困惑的是,在我点击step之后,代码不再“优化”了,我可以查看我的变量。这是怎么发生的?代码如何在优化代码和非优化代码之间来回切换? 最佳答案 虽然Debug.Break()行位于调用堆栈的顶部,但您无法评估表达式。那是因为那条线被优化了。按F10移至下一行-有