Tag: 性能

在模板中替换字符串的最快方法

我有一些模板字符串 这是我的{0}模板{1}字符串 我计划将用户值放在String.Format() 。 字符串实际上更长,所以为了便于阅读我使用: 这是我的{goodName1}模板{goodName2}字符串 然后String.Replace每个参数及其值。 如何获得最高性能和可读性? 也许我不应该在文件中使用此模板(如现在),但通过连接到字符串生成器并在需要时添加参数来动态构建它? 虽然它的可读性较差。 我的其他选择是什么?

C#反思:更新房产价值的最快方法?

这是使用reflection更新属性的最快方法吗? 假设该属性始终为int: PropertyInfo counterPropertyInfo = GetProperty(); int value = (int)counterPropertyInfo.GetValue(this, null); counterPropertyInfo.SetValue(this, value + 1, null);

静态与实例方法性能C#

我在ASP.NET Web应用程序中的公共类中声明了很少的全局方法。 我习惯以下列格式在公共类中声明所有全局方法 public static string MethodName(parameters) { } 我想知道它会如何影响性能观点? 哪一个更好? 静态方法还是非静态方法? 为什么它更好? http://bytes.com/topic/c-sharp/answers/231701-static-vs-non-static-function-performance#post947244指出: 因为,静态方法使用锁是线程安全的。 始终在内部执行Monitor.Enter()和Monitor.exit()以确保线程安全。 虽然http://dotnetperls.com/static-method声明: 静态方法在调用堆栈上调用通常比实例方法更快。 在C#编程语言中有几个原因。 实例方法实际上使用’this’实例指针作为第一个参数,因此实例方法将始终具有该开销。 实例方法也使用中间语言的callvirt指令实现,这会产生轻微的开销。 请注意,将方法更改为静态方法不太可能对雄心勃勃的性能目标有所帮助,但它可以帮助一点点,并可能导致进一步减少。 我有点困惑哪一个使用?

正弦值性能的计算与查找表?

假设您必须计算域在0.01到360.01之间的正弦(余弦或正切 – 无论如何)。 (使用C#) 什么会更高效? 使用Math.Sin 使用具有预先计算值的查找数组 我会反驳说,鉴于域名,选项2会快得多。 在域精度(0.0000n)的什么时刻,计算的性能超过了查找。

C#List .ToArray表现不好?

我正在使用.Net 3.5(C#),我听说过C# List.ToArray的性能List.ToArray是“坏”,因为它为所有元素的内存副本形成一个新数组。 真的吗?

哪个好用:Object.GetType()== typeof(Type)或Object是Type?

我想知道哪个语句在Performance Point of View中是否有用 Object.GetType() == typeof(Type) 要么 Object is Type

编码指南+最佳实践?

我找不到任何直接适用于我的查询的问题,因此我将此作为一个新问题发布。 如果有任何可能对我有帮助的讨论,请指出并结束问题。 题: 我将介绍C#编码指南,但不应限制编码标准。 所以我有一个粗略的想法,但我认为我需要解决良好的编程实践。 所以内容将是这样的。 基本编码标准 – 套管,格式化等 良好实践 – 使用Hashset优于其他数据结构,String vs String Builder,字符串的不变性以及有效地使用它们等 真的,我想添加更多好的做法(特别是为了提高性能。)所以想听听一些与C#一起使用的更好的做法。 有什么建议??? (不需要大的描述:)只是这个想法就足够了。)

List .AddRange实现次优

分析我的C#应用​​程序表明在List.AddRange花费了大量时间。 使用Reflector查看此方法中的代码表明它调用了List.InsertRange ,它实现如下: public void InsertRange(int index, IEnumerable collection) { if (collection == null) { ThrowHelper.ThrowArgumentNullException(ExceptionArgument.collection); } if (index > this._size) { ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.index, ExceptionResource.ArgumentOutOfRange_Index); } ICollection is2 = collection as ICollection; if (is2 != null) { int count = is2.Count; if (count > 0) { this.EnsureCapacity(this._size + count); if (index < this._size) { Array.Copy(this._items, index, […]

如何在0.5秒内用WPF画出数万个点?

我正在编写WPF代码来显示实时情节,这是一条包含大约10,000点的连线。 在我的电脑中显示图片大约需要5秒钟。 有没有人有想法让它更快,并在0.5秒内? class eee : FrameworkElement { public eee() { _children = new VisualCollection(this); Random rand = new Random(); DrawingVisual dv = new DrawingVisual(); using (DrawingContext dx = dv.RenderOpen()) { Pen drawingPen = new Pen(Brushes.Black, 1); double x=rand.Next(300); double y = rand.Next(300); for (double i = 0; i < 1000; i = i + […]

有没有办法加快在winforms文本框中显示大量文本?

有没有办法加快在winforms文本框中显示大量文本? 我的应用程序读取一个文件(可以大到20MB),然后将其显示到文本框(TextBoxX.Text = fileText;)。 显示文本的过程非常缓慢,有时需要几分钟。 问题是这个应用程序旨在快速向用户显示文件中的大量文本。 有没有办法更快地做到这一点? 也许使用某种缓存?