C#性能最佳实践:对象创建与重用

时间:2012-09-20 12:04:44

标签: c# performance object reusability

我目前正致力于现有C#网站的性能调优。有一类说.. MyUtil.cs。该类已广泛用于所有网页。在某些页面上创建了大约10/12个实例(MyUtil)。我运行了“Redgate”性能分析器。根据RedGate,对象创建是一项昂贵的操作。 请注意,每个实例都设置特定属性并执行特定操作。所以我不能重复使用对象。我必须重置所有成员变量。

我想优化此代码。我考虑过以下选项。请帮助我评估哪种方法更好:

(1)在“MyUtil.cs”类中创建一个“Reset”方法,该方法将重置所有成员变量(其中有167个:( ..),这样我就可以在页面类中重用一个单独的对象。

(2)继续创建多个对象(我在“MyUtil”中有Dispose()方法)

(3)我想到了“对象池”,但我还是要重置成员。我认为最好在页面级别池化对象并释放它们,而不是让它们在项目级别保持实时。

对此的任何回复将不胜感激。在此先感谢..!

1 个答案:

答案 0 :(得分:1)

每个应用都有多种不同大小的加速机会,比如你板上的各种食物。 创建和初始化对象通常可以是其中之一,通常可以是大对象。

每当我看到对象创建/初始化占用大部分时间时,我都会回收使用过的对象。 这是一项基本技术,它可以产生很大的不同。 但是,只有当我知道它会节省一小部分时间时,我才会这样做。 不要只是按照一般原则来做。