为什么Release版本和Debug版本运行速度差异很大?
我用VS2013做了一个压缩程序,压缩8.5GB数据,Release版本运行时间190s,Debug版本居然运行时间达到950s。为什么?
如果移植到EFI上,这两个版本会有多大差异?
这种不一定,看你环境,每个人的计算机都搞得不一样
调试的时候会不断进行文字读写 这很耗时速度自然就慢下来了 release是优化版速度就会相应的快一些
debug代码中含有调试代码
如果你非常想探究这个其中的原因,可以从反编译和性能监视两个方向入手。找到性能的差异,和差异的代码。
可能的原因包括:
(1)对于你这种数据密集型程序,调试版因为代码多,所以缓存命中低,造成性能差异。
(2)不同指令集的差异。同样数据密集型程序,使用SIMD指令(比如SSE或者AVX),可以大大提高吞吐量,而debug版没有这样的优化。
(3)编译优化,比如小函数内联、冗余代码和表达式优化,这个要结合反编译的代码看。