切身体会,debug与release的区别
2016-06-20 23:55
218 查看
不知道大家用vs打包的时候会不会特意改为release版本后打包。
我最近改了一个程序,打包的时候没注意,用debug打的包,结果现场反馈说对图像进行处理的时候比上一个版本的程序慢一些。我就感觉很奇怪,我又没有改过图像处理那块,只是将下载的图像存成多份而已,怎么会影响图像处理的效率呢。反复实验后才发现,原来是打包的时候用的是调试版本(debug)打的包,而debug版是没有经过优化的。
以下这段摘自网上:
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
其实这段话我知道自己肯定是看到过的,之前有段时间可能还特意用release打了包的。只是在开发的过程中,debug和release之间的差距并不是很容易发现,可能在某些情况下,它们的差距微乎其微。这次现场可以发现问题,我想应该有这么几个原因,一是因为他们特别熟悉程序,因为一直就在用,所以有差别就能感觉出来;二是因为档案多页数也多,就算处理一页的差别比较小,几百页,几千页下来也能感觉的出来差距。而对我们程序员来说,要通过经验来发现这个问题恐怕要难上许多。
把这个问题写出来呢,有两个目的。一个是告诉自己不摔跤永远不知道疼;另一个是希望大家有遇到相似的情况的时候也分享出来,我想应该比单纯的言传身教的好。
我最近改了一个程序,打包的时候没注意,用debug打的包,结果现场反馈说对图像进行处理的时候比上一个版本的程序慢一些。我就感觉很奇怪,我又没有改过图像处理那块,只是将下载的图像存成多份而已,怎么会影响图像处理的效率呢。反复实验后才发现,原来是打包的时候用的是调试版本(debug)打的包,而debug版是没有经过优化的。
以下这段摘自网上:
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
其实这段话我知道自己肯定是看到过的,之前有段时间可能还特意用release打了包的。只是在开发的过程中,debug和release之间的差距并不是很容易发现,可能在某些情况下,它们的差距微乎其微。这次现场可以发现问题,我想应该有这么几个原因,一是因为他们特别熟悉程序,因为一直就在用,所以有差别就能感觉出来;二是因为档案多页数也多,就算处理一页的差别比较小,几百页,几千页下来也能感觉的出来差距。而对我们程序员来说,要通过经验来发现这个问题恐怕要难上许多。
把这个问题写出来呢,有两个目的。一个是告诉自己不摔跤永远不知道疼;另一个是希望大家有遇到相似的情况的时候也分享出来,我想应该比单纯的言传身教的好。
相关文章推荐
- al实验
- Python爬虫实践(六):正则表达式(1)
- UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position xxx ordinal not in range解决方安
- Java基础
- Exynos4412 NFS服务器搭建
- 柴俊理金:6、20午夜黄金,宁贵沥青操作策略
- 线程的生命周期以及java提供的方法
- 跨平台XMPP企业即时通信系统开发基础
- Struts2学习(二)--使用struts2编写helloworld
- 简单Makefile编写
- AS自动导入 auto import
- px4开发文档的翻译搬到github和gitbook了
- 控制反转、依赖注入的实质
- [WEB]PHP的编码 与MySQL5.5的编码 适配
- LeetCode200—Number of Islands
- [转]海量存储检索原理系列文章
- Python验证码识别
- 计量金融学
- 关于异常java.lang.InstantiationException has no public zero-arg constructor
- [编译环境][gcc]运行时无法找到动态链接库