草庐IT

OPTIMIZATION

全部标签

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

c# - 编译器魔法 : Why?

我刚刚注意到给定以下代码:if(x.ID>0&&!x.IsCool)MicrosoftC#3.0(VS2008SP1)编译器会对此进行优化:if(!((x.Id这是在未启用优化的情况下进行的调试构建。为什么编译器会那样做?它在执行方面是否更快?我使用Reflector找到了答案(我实际上是在寻找不同的东西) 最佳答案 C#编译器肯定不会为您的代码段生成等效的C#代码。它被编译成IL。基本上,您所看到的(我猜是来自Reflector)是反编译器为该IL吐出的等效C#代码。语言规范没有说明什么是“未优化”代码。C#编译器可以生成任何有效

c# - List.Contains() 的循环实现看起来比内置的更快。是吗?如果是这样,为什么?

(Thisquestionarisesfromadiscussionthatstartedhere)我正在比较寻找true的时间List中的值使用List.Contains()与那些用于手卷循环。我看到的结果与其他人报告的结果不同。我已经在几个系统上试过了,在我试过的所有系统上,循环似乎快了2到3.5倍。这些系统的范围从使用.Net4运行XP的5年前笔记本电脑到最近运行Windows8和.Net4.5的PC。其他人报告了不同的结果,即List.Contains()与循环的速度大致相同或略快。这是我的测试代码。usingSystem;usingSystem.Collections.Gen

C# WPF 应用程序启动非常慢

我写了一个简单的.netWPF应用程序(只包含2个小窗口),但它的启动速度太慢-大约10-20秒!Profiler说:Main->RunInternal(56%)Main->RunInternal->ctor->LoadBaml(32%)应用程序加载时间的最大部分-是Main->RunInternal函数的主体,这不是我的函数,我不知道它们是做什么的。能否以某种方式优化它们的执行时间?加载Baml标记需要32%的时间,但我的程序只有3个XAML文件,它们包含的代码不到100行。为什么此操作需要这么长时间?在询问之前我已经阅读并尝试了这些技巧,但它们对我没有帮助:WPFapplicati

c# - System.Runtime.Caching.MemoryCache 的通用实现

MemoryCache是否有任何通用的替代方案/实现?我知道MemoryCache在底层使用Hashtable,所以只需转换为使用Dictionary,这是Hashtable的通用版本。这将提供类型安全并提供性能优势,因为无需装箱/拆箱。编辑:我感兴趣的另一件事是使用不同的key类型。默认值为System.String。 最佳答案 Isthereanygenericalternative/implementationforMemoryCache?不在基类库中。你必须自己动手,但就我个人而言,我只会围绕MemoryCache做一个包装

c# - 编译器是否优化对 const 变量和文字 const 数字的操作?

假设我有一个带字段的类:constdoublemagicalConstant=43;这是代码中的某处:doublerandom=GetRandom();doubleunicornAge=random*magicalConstant*2.0;编译器是否会优化我的代码,使其不会在每次计算unicornAge时都计算magicalConstant*2.0?我知道我可以定义下一个将这个乘法考虑在内的常量。但这在我的代码中看起来更清晰。编译器对其进行优化是有意义的。 最佳答案 (这个问题是thesubjectofmybloginOctober

c# - c# 编译器是否优化 Count 属性?

Listlist=...for(inti=0;i那么编译器是否知道list.Count不必每次迭代都调用? 最佳答案 你确定吗?Listlist=newList{0};for(inti=0;i如果编译器缓存了上面的Count属性,list的内容将是0和1。如果没有缓存,内容将是从0到100.现在,这对您来说可能看起来像是一个人为的例子;但是这个呢?Listlist=newList();inti=0;while(list.Count这两个代码片段似乎完全不同,但这只是因为我们倾向于思考for循环与while循环。在任何一种情况下,每次