Debug比Release慢
平时只是有个概念,知道Debug与Release之间生成的程序集运行效率是比较有差异的,只是这次的差异高达60多倍,有点意思。
最近弄公式编辑器,当从数据库中加载了大量的数据后,对这数据处理并解析为Token,然后再按公式的层次自动构成公式网络,此算法在Debug模式下,调试时,发现对数据解析的过程极其缓慢, 花费时间大约有2分钟,平均每0.2~0.4秒处理完成一次解析,后调试发现在Debug模式下主要花费时间都是在创建对象上,在Release下,花费时间不到1秒 - -! 差距还真大。
速度取决于所调试的DLL生成类型,如果使用的类是引用的DLL是经过Release生成的话,速度就不会缓慢,如果是Debug生成的,则速度不会得到改善。
尝试将生成的非通过vs.net点击,而是单独生成运行,Debug模式的仍然速度没有改善多少,而Release即使是在Vs.net的调用模式下,速度也非常理想。