为什么程序退出前还要释放动态申请的内存资源
原文见:http://programmers.stackexchange.com/questions/140483/is-it-a-waste-of-time-to-free-resources-before-i-exit-a-process
既然OS会在程序退出后清理资源,为什么还需要程序员在程序退出前一个个的释放资源?是不是没有必要?还是OS的释放还有不一样的行为?
作者强调这只是个学术性的探讨,不涉及边界效应,编程习惯等等。
几个比较中肯的回答,但是这些回答大多没有把重点放在程序退出时候,因为提问者很关心这个时间点
1. 分配和释放的接口可以保证程序的扩展性,方便集成到更大的系统
2 释放的动作可以附庸
3 去除恼人的类似purify的Waring,error
也有人明确提出程序退出前的释放动作是没有意义的,因为无论如何OS会结果这些资源
http://blogs.msdn.com/b/oldnewthing/archive/2012/01/05/10253268.aspx,这个地方有人指出 IOS 手册指出 APP不要再退出前作清理操作而浪费电量~~~。
但是最有很多的工程师来说,可能会习惯在退出是释放资源,这样可以保持一贯性,或者使工程师感觉心里舒服些,大概。
而且软件是变化的,保证功能的完整性有助于扩展和维护,所以我觉得还是去手动释放这些资源吧,除非明确有IOS这样的特殊考虑