Kum*_*mar -8 .net c# optimization performance high-availability
quandry是 - 以下两种方法中的哪一种执行最佳
目标 - 获得类型为Wrapper(下面定义)
标准的对象- 速度超过存储
号.记录 - 约1000-约2000,最大约6K
选择 - 动态创建对象或从字典
执行查找执行速度 - 每秒调用x次
注意 - 我需要首先提供工作代码,然后进行优化,因此如果任何理论家可以提供场景信息背后的一瞥,那么在我进行实际性能测试之前可能会有所帮助.
定义 -
class Wrapper
{
public readonly DataRow Row;
public Wrapper(DataRow dr)
{
Row = dr;
}
public string ID { get { return Row["id"].ToString(); } }
public string ID2 { get { return Row["id2"].ToString(); } }
public string ID3 { get { return Row["id3"].ToString(); } }
public double Dbl1 { get { return (double)Row["dbl1"]; } }
// ... total about 12 such fields !
}
Dictionary<string,Wrapper> dictWrappers;
Run Code Online (Sandbox Code Playgroud)
方法1
Wrapper o = new Wrapper(dr);
/// some action with o
myMethod( o );
Run Code Online (Sandbox Code Playgroud)
方法2
Wrapper o;
if ( ! dictWrappers.TryGetValue( dr["id"].ToString(), out o ) )
{
o = new Wrapper(dr);
dictWrapper.Add(o.ID, o);
}
/// some action with o
myMethod( o );
Run Code Online (Sandbox Code Playgroud)
编辑:我试图赞成以下优化,除非性能是不可接受的:
我(最近)看到了非常难以调试的高度优化的代码.我重构它以简化它,然后进行性能测试.性能是不可接受的,因此我对其进行了分析,找到了瓶颈,并仅对这些瓶颈进行了优化.我重新运行了性能测试,新代码与高度优化的版本相当.现在它更容易维护.
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |