Tag: 性能

什么更快:正则表达式或字符串操作?

什么时候我应该使用Regex而不是字符串操作,反之亦然只考虑性能?

并行框架并避免错误共享

最近,我回答了一个关于优化可能的可并行化方法来生成任意基数的每个排列的问题。 我发布了类似于Parallelized,糟糕的实现代码块列表的答案,有人几乎立即指出了这一点: 这几乎可以保证为您提供错误的共享,并且可能会慢很多倍。 (信用gjvdkamp ) 他们是对的, 死亡很慢。 也就是说,我研究了这个主题,并找到了一些有趣的材料和建议 (仅存档的MSDN杂志, .NET Matters:False Sharing )来对抗它。 如果我理解正确,当线程访问连续的内存(例如,可能支持ConcurrentStack的数组)时,可能会发生错误共享。 对于横向规则下面的代码, Bytes为: struct Bytes { public byte A; public byte B; public byte C; public byte D; public byte E; public byte F; public byte G; public byte H; } 对于我自己的测试,我想获得这个运行的并行版本并且真正更快,所以我创建了一个基于原始代码的简单示例。 6作为limits[0]对我来说是一个懒惰的选择 – 我的计算机有6个核心。 单线程块 平均运行时间:10s0059ms var data = new List(); […]

WPF如何优化布局/渲染周期?

WPF如何在高度易变的应用程序中优化布局/渲染周期? 例如,假设我快速连续两次使自定义控件无效,它会渲染两次吗? 当数据/属性更新速率比主渲染速率快时,是否存在性能问题?

为什么LINQ to objects方法的顺序很重要

我读了这个问题的答案,解释了LINQ to objects方法的顺序有所不同。 我的问题是为什么? 如果我编写LINQ to SQL查询,那么LINQ方法的顺序并不重要 – 例如: session.Query().OrderBy(x => x.Id) .Where(x => x.Name == “gdoron”) .ToList(); 表达式树将转换为合理的SQL,如下所示: SELECT * FROM Persons WHERE Name = ‘gdoron’ ORDER BY Id; 当我运行查询时,无论方法的顺序多么奇怪,SQL查询都会根据表达式树构建。 为什么它与LINQ to objects不一样? 当我枚举一个IQueryable时,所有的投影都可以放在一个合理的顺序中(例如,在Where之后的Order By)就像数据库优化器那样。

Linq中的ToList方法

如果我没有错,ToList()方法将迭代所提供集合的每个元素,并将它们添加到List的新实例并返回此实例。假设示例 //using linq list = Students.Where(s => s.Name == “ABC”).ToList(); //traditional way foreach (var student in Students) { if (student.Name == “ABC”) list.Add(student); } 我认为传统的方法更快,因为它只循环一次,其中Linq的上面迭代两次一次用于Where方法然后用于ToList()方法。 我正在研究的项目现在已广泛使用Lists,我发现如果我将list变量作为IEnumerable并删除.ToList,有很多类似的使用ToList()和其他方法,可以像上面那样做得更好。 ()并将其作为IEnumerable进一步使用。 这些事情会对性能产生什么影响吗?

通过接口枚举 – 性能损失

我与我的同事有一点争议(这非常接近圣战:))关于通过枚举VS通过枚举器访问列表的性能。 为了操作一些事实,我写了以下测试: static void Main(string[] args) { const int count = 10000000; var stopwatch = new Stopwatch(); var list = new List(count); var rnd = new Random(); for (int i = 0; i < count; i++) { list.Add( rnd.Next()); } const int repeat = 20; double indeces = 0; double forEach = 0; for (int […]

复制目录的性能

我正在使用C#将文件从一个目录复制到另一个目录。 我正在使用来自msdn的代码,但它花了一分钟左右才能复制几个演出。 在资源管理器中只需几秒钟。 http://channel9.msdn.com/Forums/TechOff/257490-How-Copy-directories-in-C有一种更快的方式.. 🙂 private static void Copy(string sourceDirectory, string targetDirectory) { DirectoryInfo diSource = new DirectoryInfo(sourceDirectory); DirectoryInfo diTarget = new DirectoryInfo(targetDirectory); CopyAll(diSource, diTarget); } private static void CopyAll(DirectoryInfo source, DirectoryInfo target) { // Check if the target directory exists, if not, create it. if (Directory.Exists(target.FullName) == false) { Directory.CreateDirectory(target.FullName); } // Copy each […]

预编译的ASP.NET网站上的“JIT时间”的高,波动

使用预编译 (可更新)的150 * .dll ASP.NET网站,在应用程序预热后,“JIT时间百分比”的一些可能原因通常很高(> 60%)并且波动很长(访问所有function)并且没有应用程序重新启动或文件更改可能会生成新程序集? 可以预期,为该所有程序集生成的机器代码将在该app-domain的持续时间内重复使用。 缓存的机器代码量是否有限? 在什么情况下,同一个程序集需要在同一应用程序域中重新JIT? 或者是否必然会生成新的程序集? 内存压力等因素会影响性能指标吗? 参考 : http://forums.asp.net/p/967386/2959500.aspx

免费或廉价的C#asp.net分析/性能分析选项?

我知道Redgate的Ants Profiler,我听说它很棒,但它也是400美元。 任何更便宜的替代品至少会指向我可能需要优化我的代码的地方?

类VS ref Struct

我正在使用C#编写游戏,因此,我非常关注性能。 我想知道主要区别是什么,如果可能的话,使用Class传递数据或通过引用传递的struct的性能考虑因素。 出于性能原因,我希望不要复制数据(我假设通过ref传递比这里的值快得多)。 我知道一个类总是通过引用传递,并且结构是通过值传递的,但我在谈论通过引用传递结构。 我希望传递的数据示例: public delegate void PathCompleteDelegate(List path); public struct PathFinderJob{ public PathCompleteDelegate callback; public Vector3 start, end; public PathSize unitSize; public BoxCollider boxCollider; } 在前面的例子中,使用类会有所作为吗? 如果是这样,差异会是什么? 在这个例子中,一个类是否比结构更快? 为什么? 谢谢。 若昂卡洛斯