本章,作者讨论了程序开发中空间利用的问题。在计算机诞生之初,由于存储设备的限制,计算机内存往往只有64k、128k等等,所以如何有效利用空间对于程序员是一个非常重要的问题。现今,尽管存储设备非常先进,普通个人计算机的内存往往都能达到2GB、4GB、8GB,有些超级计算机内存甚至能达到1TB,但是,随着大数据时代的来临,我们需要处理的数据也越来越庞大,计算机的空间的有效利用仍不是一个无足轻重的话题。
作者主要讨论了两个方面的空间技术:数据空间技术、代码空间技术。
一、首先,数据空间技术。
1、 不存储,重新计算。此方法通过牺牲更多的运行时间来换取更少的时间。当然,这种技术的利用,必须考虑到时间和空间的平衡。
2、 洗漱数据结构。常见的有稀疏矩阵、关键字索引技术等。
3、 数据压缩。信息理论告诉我们,可以通过压缩的方式对对象进行编码,以减少存储空间。
4、 分配策略。通过动态分配节约空间。
5、 垃圾回收。及时对废弃的空间进行回收利用。
二、代码空间技术
1、 函数定义。通过函数替换代码中常见模式可以简化程序,相应的减少它的空间需求,并增加了其清晰性。
2、 解释程序。利用解释程序可以替换冗长的程序文本。
3、 翻译成机器语言。