程序性能分析
程序性能指的是运行这个程序所需要的内存和时间的多少。用两种方法确定程序的性能:一个是分析方法即性能分析,一个是实验方法即性能测量。
空间复杂度
空间复杂度的组成
- 指令空间
指令空间指的是编译之后程序指令所需要的存储空间
编译器最终编译成的汇编语言结果决定了指令执行的时间 - 数据空间
数据空间指的是所有常量和变量值所需要的存储空间,它由两个部分构成:- 常量和简单变量所需要的存储空间
- 动态数组和动态类实例等对象所需要的空间
- 环境栈空间
环境栈空间用来保存暂停的函数和方法在恢复运行时所需要的信息- 返回地址
- 正在调用的函数的所有局部变量的值以及形式参数的值
实例特征n
一个程序所需要的空间分为两部分:
- 固定部分。独立于实例特征,通常包括指令空间(即代码空间)、简单变量空间、常量空间等
- 可变部分。由动态分配空间构成和递归栈空间构成。前者某种程度上依赖实例特征,后者主要依赖实例特征。
时间复杂度
操作计数,最好、最坏和平均操作计数,s/e*频率=总步数