我最近重新编写了我的文件格式编写库。我意识到我的代码很乱,让一切都变得太复杂,而且通常很难维护。
所以我的新图书馆更有条理和干净。我意识到我在旧库中完成任务的许多方法比它需要的要复杂得多,所以我希望我的新代码更快。
嗯,不完全是。我首先使用 .Net 框架中的 Stopwatch 类来测试性能。我的旧库始终更快,这让我感到震惊,因为有太多的改进和优化无法计算。
然后我使用 dotTrace Performance Profiler 对两者进行了测试。正如预期的那样,我的新库更快了——快了大约 2倍!我的旧库测量了 62 毫秒,而我的新库测量了 28 毫秒!
所以我不确定发生了什么。在 Visual Studio 中,我的新库要慢得多 - 事实上,它非常不一致,它的时间范围从 00::00::00.042 到 00::00::00.351!
有谁知道为什么会发生这种情况?dotTrace 说它快 2 倍,秒表说它慢 2-4 倍。
感谢大家的帮助。
- 亚历克斯
编辑:
两个库的代码相同,都只是引用新旧库。这是在控制台应用程序上测试的:
class Program {
static void Main(string[] args) {
Stopwatch sw = new Stopwatch();
sw.Start();
Textstring txt = new Textstring("TestText");
txt.Text = "This is a test textstring.";
RdwFile f = new RdwFile("Test");
f.Add(txt);
f.Save();
sw.Stop();
Console.WriteLine(sw.Elapsed.ToString());
Console.ReadKey();
}
};