程序性能

所谓程序性能( program performance),是指运行一个程序所需要的内存大小和时间。

空间复杂性的组成

程序所需要的空间主要由以下部分构成:
• 指令空间(instruction space) 指令空间是指用来存储经过编译之后的程序指令所需的空间。
• 数据空间( data space) 数据空间是指用来存储所有常量和所有变量值所需的空间。数据空间由两个部分构成:

1) 存储常量(见程序1 - 1至1 - 9中的数0、1和4)和简单变量(见程序1 - 1至1 - 6中的a、b和c)所需要的空间。
2) 存储复合变量(见程序1 - 8和1 - 9中的数组a)所需要的空间。这一类空间包括数据结构所需的空间及动态分配的空间。

环境栈空间(environment stack space) 环境栈用来保存函数调用返回时恢复运行所需要的信息。

1. 指令空间

即使采用相同的编译器,所产生程序代码的大小也可能不一样。例如,一个编译器可能为用户提供优化选项,如代码优化以及执行时间优化等。使用优化模式通常会增加程序编译所需要的时间。

另外一种可以显著减少程序空间的编译器选项就是覆盖选项,在覆盖模式下,空间仅分配给当前正在执行的程序模块。在调用一个新的模块时,需要从磁盘或其他设备中读取,新模块的代码将覆盖原模块的代码。所以程序空间就等价于最大的模块所需要的空间(而不是所有模块之和)。

2. 数据空间