小弟最近做性能优化,其中有一个需求是这样的
目标string如下
string data = "abcde\\earda\\ppp\\xxxxx"
这个需求是这样的,就是把形如这样的字符串,插入到一个
Dictionary里面去
protected Dictionary<int, string> _values
之前的写法是这样的:
char[] sep = new char[] { '\\' };
values = data.Split(sep);
for (int i = 0; i < values.Length; ++i)
{
_values.Add(i, value);
}
现在测试下来用这种方法去做data.split的方式性能比较差,请教有没有什么可以提升性能的方法。
------解决思路----------------------
如果不用Split
就只能循环
先IndexOf
再SubString
我不觉得这效率会比Split更高
------解决思路----------------------
热点是相对的,因为不可能每一行代码的性能都完全一致。
------解决思路----------------------
profile的“性能热点”根本就是一个可以胡乱解释的指标。比如说你去坐公交车,车总是不来,于是车站上进进出出的人越来越多,你能说人才是性能热点?
看不懂profile最好就不用它,而是自己写测试程序来分析。因为你自己哪怕是写出4、5行代码的时候,你也是动脑筋去分析了。而避免纠结于“profile如此这么说的”这类因为净信工具而忘记了自己分析自己的程序整体流程的现象。
------解决思路----------------------
做性能优化,应该把精力放在逻辑流程设计的重构上。对具体的“语句问题”,只占很少一点点闲暇时间。