|
本帖最后由 jorya_txj 于 2015-11-24 13:23 编辑
内存管理是一个很大的话题,也和产品的成功息息相关。很多人可能为linux的丰富性易用性而欢呼。但是忽略了很多重要的点,抛去实时性,由成千上万个开源软件组成的linux上层软件对于内存泄漏以及内存碎片而言,这个问题是无解的,换而言之,一旦产品使用linux上电后,最终结果是内存耗尽,系统崩掉。这不是危言耸听。很多人都知道使用linux相关的设备会越跑越慢,最后不得不重启,做得好一点的支撑的时间长一点,做得差的几个小时就出现这样的现象。其背后根本的原因就是内存出现问题。由于linux上层内存管理算法的稀缺只有一个malloc,长期使用后内存碎片无法避免,关键是除了malloc也只有malloc,对于那些频繁申请释放内存的操作最后一定是全部是内存碎片,耗尽系统内存。linux对于由于内存过大无法控制的进程会杀掉!从而保证其它的进程能活下来。这种设计适合于桌面应用的设计,但是绝对不适合工控设备的设计。对于工控设备来说,你把我主要的进程给杀死了,留其它的进程还有什么用呢?头脑已经死了,留下手足还有何用,只是一个死人而已。linux对于内存泄漏所提供的检查机制实在太少,很多时候基于linux的大型的软件系统最麻烦的就是看着内存不断泄漏,但是能做的很有限,支撑一段时间后最终内功耗尽统崩掉。
所以对于那些长时间需要连续运行的重要的设备不建议使用linux,除非用户能够容忍每隔一段时间重启。
|
|