草庐IT

optimization

全部标签

c# - 为什么在通用序列创建器上使用 Func<> 比使用 new() 约束快得多

考虑以下代码...在我对Windows7x64PC(Inteli73GHz)上的RELEASE(不是调试!)x86构建的测试中,我获得了以下结果:CreateSequence()withnew()took00:00:00.9158071CreateSequence()withcreator()took00:00:00.1383482CreateSequence()withnew()took00:00:00.9198317CreateSequence()withcreator()took00:00:00.1372920CreateSequence()withnew()took00:00:

c# - 优化 C# 文件 IO

场景-150MB的文本文件,它是旧电子邮件帐户的导出收件箱。需要解析并提取来自特定用户的电子邮件,并将这些电子邮件写入一个新的单个文件。我有可用的代码,它只是太慢了。我正在使用标记字符串来搜索从原始文件开始/结束副本的位置。这是主要功能:StreamReadersr=newStreamReader("c:\\Thunderbird_Inbox.txt");stringworking=string.Empty;stringmystring=string.Empty;while(!sr.EndOfStream){while((mystring=sr.ReadLine())!=null){i

c# - 强制 .NET JIT 编译器在应用程序启动期间生成最优化的代码

我正在用C#编写一个DSP应用程序(基本上是一个多轨编辑器)。我已经在不同的机器上对它进行了很长一段时间的分析,我注意到了一些“奇怪”的事情。在我的家用机器上,播放循环的第一次运行占用了大约50%-60%的可用时间(我假设这是由于JIT完成它的工作),然后对于后续循环,它下降到稳定的5%消耗。问题是,如果我在较慢的计算机上运行该应用程序,第一次运行会占用比可用时间更多的时间,导致播放中断并弄乱输出音频,这是NotAcceptable。之后,它会下降到8%-10%的消耗。即使在第一次运行后,应用程序仍然不时调用一些耗时的例程(大约每2秒一次),这导致稳定的5%消耗经历了20%-25%的非

c# - C# 中的快速数组移位实现?

我需要将数组向右和向左移动N个位置。从我移动到的一侧弹出的项目必须在另一侧返回。右移13:[0,1,2,3,4,5,6,7,8,9]->[7,8,9,0,1,2,3,4,5,6]左移15:[0,1,2,3,4,5,6,7,8,9]->[5,6,7,8,9,0,1,2,3,4]此操作将发生数百万次并且必须非常快。我当前的实现如下。请查看并建议是否需要进行一些优化。if(shift>0){intoffset=array.Length%shift;if(offset>0){byte[]temp=newbyte[offset];if(!right){Array.Copy(array,temp,

c# - 使用 Microsoft Web Optimization Framework 时不要丑化某些文件

我正在尝试使用MicrosoftWebOptimizationframework将大量.js文件合并为一个文件.一切正常,但在这些文件中,我有几个已经缩小和丑化了,不需要再次处理它们。例如,我有recaptcha_ajax.js文件,它在附加时会导致以下错误:/*Minificationfailed.Returningunminifiedcontents.(715,29-36):run-timeerrorJS1019:Can'thave'break'outsideofloop:breakt(714,293-300):run-timeerrorJS1019:Can'thave'break

c# - 删除大量记录需要很长时间

我有一个包含约60,000行的数据库表(在SQLServer2012Express上运行)。我正在使用以下代码清除旧行://DeletingCPUmeasurementsolderthan(oldestAllowedTime)varallCpuMeasurementsQuery=fromcurrinmsdc.CpuMeasurementswherecurr.Timestamp当删除的行数很大时(删除表中约90%或更多的记录),操作会花费特别长的时间。在性能比较强的机器(IntelI5台式机)上完成这个操作大约需要30分钟。这看起来像是正常行为吗?关于我可以做些什么来减少手术时间有什么想

c# - 您能否使用 Mono/LLVM 生成比使用 Microsoft 的 C# 编译器更快的 .NET 应用程序?

MonowithLLVM项目能够使用LLVM编译器后端,它有一些非常强大的优化来编译C#.NET项目,这使得它在计算密集型应用程序中的运行速度提高了大约20%。MonoisnowabletouseLLVMasabackendforcodegenerationinadditiontoMono'sbuilt-inJITcompiler.ThisallowsMonotobenefitfromallofthecompileroptimizationsdoneinLLVM.ForexampletheSciMarkscoregoesfrom482to610.那么是否可以将现有的C#.NET项目定位

c# - IEnumerable<T>.Count 在哪些情况下进行了优化?

使用reflector我注意到System.Linq.Enumerable.Count方法中有一个条件可以针对IEnumerable的情况对其进行优化。passed实际上是一个ICollection.如果转换成功,Count方法不需要遍历每个元素,而是可以调用ICollection的Count方法。基于此,我开始认为IEnumerable可以像集合的只读View一样使用,而不会出现我最初基于IEnumerable的API预期的性能损失我感兴趣的是是否优化了CountIEnumerable时仍然成立是Select的结果关于ICollection的声明,但根据反射(reflect)的代码,

c# - 有人知道输出 "Module is optimized and the debugger option ' Just My Code' is Enabled”吗?

正如我在previous问题中所说,我正在将我的应用程序迁移到WindowsMetro应用程序。我得到这样的输出我不明白这个输出,如果有人知道请告诉我! 最佳答案 通常,您不需要模块加载消息,但默认情况下它们是打开的。工具->选项->调试->输出窗口->模块加载消息->关闭 关于c#-有人知道输出"Moduleisoptimizedandthedebuggeroption'JustMyCode'isEnabled”吗?,我们在StackOverflow上找到一个类似的问题:

c# - 我需要更快的 .NET C# float 学运算(用于大数组的乘法和除法)

我需要最快的方法来乘除大数据数组。我读过这篇文章(由BenVoigt撰写here):.NETdoesn'tuseMMXorSSEorAVX,asofthecurrentversion(...)modernC++compilersnotonlyallowSIMDusage,butcanauto-vectorizeordinary-lookingcodeintoSIMDinstructions.我想我需要:SSE支持矢量运算(一次乘以4个float)多线程支持(不会以某种方式与C#线程冲突的解决方案/库)有没有我可以使用的库/dll?编辑:Octave的任何替代品?我只需要2个操作:除法、