jjzjj

optimization

全部标签

c# - 我如何充分了解 CLR 以对性能问题做出有根据的猜测?

是的,我正在使用分析器(ANTS)。但在微观层面,它不能告诉你如何解决你的问题。我现在正处于微优化阶段。例如,我正在对此进行分析:for(intx=0;xANTS显示y循环线花费了大量时间。我认为这是因为它必须不断调用Heightgetter。所以我创建了一个本地intheight=Height;在循环之前,并使内部循环检查y.这实际上使性能变差了!ANTS现在告诉我x-loop-line有问题。嗯?这应该是微不足道的,它是外循环!最终我有了一个启示——也许使用外循环绑定(bind)的属性和内循环绑定(bind)的本地使得CLR经常在“本地”缓存和“this-pointer”缓存之间跳

c# - 如何获得特定长度的最大数量

我有一个号码,例如1234567897865;我如何最大化它并创建99999999999999?我是这样做的:intlen=ItemNo.ToString().Length;StringmaxNumString="";for(inti=0;i完成此任务的更好、更合适和更短的方法是什么? 最佳答案 varx=1234567897865;returnMath.Pow(10,Math.Ceiling(Math.Log10(x+1e-6)))-1;为了扩展下面的评论,如果这个问题用十六进制或二进制表示,可以非常简单地使用移位运算符来完成即,

c# - 如何在 C# 中多次使用秒表?

我有执行不同操作的短代码,我想测量执行每个操作所需的时间。我在这里阅读了有关秒表类(class)的信息,并希望优化我的时间测量。我的函数调用了5个其他函数,我想在不声明的情况下测量每个函数:stopwatchsw1=newstopwatch();stopwatchsw2=newstopwatch();etc..我的函数看起来像这样:publicboolfunc(){....func1()func2()........func5()}有什么方法可以使用一个秒表实例来测量时间吗?谢谢!! 最佳答案 使用委托(delegate)将方法作为

c# - 在 C# 中应用 DeMorgan 定理手动优化条件语句中的 bool 表达式是否有用(例如 if 条件)

回到我用C和C++完成大部分工作的那一天,当然,我会手动申请deMorgan'stheorem优化任何重要的bool表达式。在C#中执行此操作是否有用,或者优化器是否不需要这样做? 最佳答案 在如此快的处理器上,重新排列bool表达式几乎不可能在速度上产生任何实际差异。而且C#编译器非常聪明,它也会优化它。优化可读性和清晰度! 关于c#-在C#中应用DeMorgan定理手动优化条件语句中的bool表达式是否有用(例如if条件),我们在StackOverflow上找到一个类似的问题:

c# - 在 C# 2.0 中同步两个 IList 的最佳算法

想象一下下面的类型:publicstructAccount{publicintId;publicdoubleAmount;}同步两个的最佳算法是什么IList在C#2.0中?(没有linq)?第一个列表(L1)是引用列表,第二个(L2)是根据第一个来同步的:L2中不再存在于L1中的所有帐户必须从L2中删除必须更新L1中仍然存在的L2中的所有帐户(金额属性)所有在L1中但尚未在L2中的帐户必须添加到L2Id标识帐户。找到一种朴素且有效的算法并不难,但我想知道是否有一种智能解决方案可以在不破坏可读性和性能的情况下处理这种情况。编辑:帐户类型无关紧要,可以是一个类,具有属性、相等成员等。L1

c# - 如何在安装结束时运行 nGen (MSI)?

我想在安装结束时执行nGen,只是为了提高应用程序首次启动时的感知性能。我怎么能那样做?有一些最佳实践吗?我可以确定nGen始终与.NETFramework一起安装吗?谢谢! 最佳答案 您可以使用自定义安装程序操作来生成您的程序集。以下链接对此进行了更详细的解释:http://www.dotnetperls.com/ngen我还记得对Paint.NET安装程序(包括.NETFrameworkBootstrap、预JIT等)的一个很好的讨论,但我现在找不到它。如果我再次遇到它,我会编辑这篇文章。

c# - ResolveBundleUrl 没有解析所有文件?

我是MVC的新手,所以我想开始一个新项目并尝试MVC4中的一些新功能。我的Content目录中有两个css文件,normalise_mini和site.css。当我使用以下代码时:它只需要我的site.css文件而不是我的规范化文件。我的应用开始时有以下内容:protectedvoidApplication_Start(){//Removeallotherviewenginesexceptrazor:ViewEngines.Engines.Clear();ViewEngines.Engines.Add(newRazorViewEngine());AreaRegistration.Reg

c# - 你会在哪里使用 C# 运行时编译?

我最近在搜索其他内容时偶然在另一个网站上看到了一个关于C#运行时编译的简短讨论,我认为这个想法很有趣。你用过这个吗?我正在尝试确定如何/何时使用它以及它解决了什么问题。我很想知道您是如何使用它的,或者它在什么情况下才有意义。非常感谢。 最佳答案 通常,我看到它用在您当前正在使用反射并需要优化性能的情况下。例如,不是使用反射来调用方法X,而是在运行时生成一个动态方法来为您执行此操作。 关于c#-你会在哪里使用C#运行时编译?,我们在StackOverflow上找到一个类似的问题:

C# 列表解析 = 纯语法糖?

考虑以下C#代码:IEnumerablenumbers=Enumerable.Range(0,10);varevens=fromnuminnumberswherenum%2==0selectnum;这是允许我将for或foreach循环编写为单行代码的纯语法糖吗?是否有任何编译器优化可以使上面的列表理解比循环构造更有效?这是如何工作的? 最佳答案 正如Jason所说,您的代码等同于:Enumerable.Range(0,10).Where(n=>n%2==0);请注意,lambda将转换为对每个元素执行的函数调用。这可能是开销的最大

c# - 限制进程的CPU使用率

我有一项服务正在运行,它会定期检查文件夹中的文件,然后对其进行处理。(读取它,提取数据,存入sql)所以我在测试盒上运行了它,它花费的时间比预期的要长一点。该文件有160万行,6小时后仍在运行(然后我回家了)。问题是它运行的机器现在完全瘫痪了——远程桌面超时所以我什至不能在它上面停止进程,或者附加一个调试器来查看有多远等等。它稳定地使用90%以上的CPU,并且所有其他正在运行的服务或应用程序都受到影响。代码是(凭内存,可能无法编译):Listitems=newList();using(StreamReadersr=fileInfo.OpenText()){while(!sr.EndOf