C++ Release和Debug相比,具体优化了那些地方?
1个回答
展开全部
1变量,Debug版如果你不初始化变量,变量自动初始化为0xCC,删除动态分配的内存时将其赋值为0xCD。Release版不对变量初始化,删除动态分配的内存时也不对内存中的数据进行处理。
2内存分配的长度,debug版以32bytes为单位分配,release版以8bytes为单位。比如你定义int a[4]; 在Debug版里分配的内存长度是32byte,而在Release版里则分配16byte。所以在debug版里如果你定义a[4],却在程序里使用a[4] = xxx不会出问题,但是在elease版里就会出问题.
3变量的类型,Release版里对于经常使用的变量会自动使其变成寄存器变量,以加快程序运行速度。
4ASSERT, VERIFY, TRACE..........调试宏 ,只有在调试模式下才有代码。
5编译后的程序,Debug版包含了源代码以便于调试,Release版则没有包含。
暂时就想到这么多
2内存分配的长度,debug版以32bytes为单位分配,release版以8bytes为单位。比如你定义int a[4]; 在Debug版里分配的内存长度是32byte,而在Release版里则分配16byte。所以在debug版里如果你定义a[4],却在程序里使用a[4] = xxx不会出问题,但是在elease版里就会出问题.
3变量的类型,Release版里对于经常使用的变量会自动使其变成寄存器变量,以加快程序运行速度。
4ASSERT, VERIFY, TRACE..........调试宏 ,只有在调试模式下才有代码。
5编译后的程序,Debug版包含了源代码以便于调试,Release版则没有包含。
暂时就想到这么多
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询