2.1 引言
程序性能(program performance):指一个程序所需要的大小和时间。采用分析的方法进行性能分析(performance analysis),采用实验分方法进行性能测量(performance measurement)。
程序的空间复杂性(space complexity):指运行完一个程序所需要的内存大小。空间复杂性可用于:
*程序内存大小的分配;
*确认是否有足够内存运行程序;
*可以利用时间复杂性估算一个程序所能解决问题的上限规模。
程序的时间复杂性(time complexity):运行完该程序所需要的时间。
2. 2 空间复杂性
程序所需要的空间主要包括以下几个部分:
*指令空间(instruction space):存储经过编译之后的程序指令所需要的空间。
*数据空间(data space):存储所有常量和变量值所需的空间。可分为以下两个部分:
1)存储常量和简单变量。
2)存储复合变量,包括数据结构所需的空间以及动态分配的空间。
*环境栈空间(environment stack space):用来保存函数调用返回时恢复运行所需要的信息。如func1调用func2,则需要保存func2结束时fun1继续执行指令的地址。
编译器可以为用户提供代码及执行时间的优化