《NetBSD指南-18.7.1.开始》
发表于 : 2010-03-05 14:08
首先, 先看一下 Section 18.9, “内核调整” 和 Chapter 31, 编译内核. 启用内核中的分析选项(profiling)建立内核的过程的区别是你运行config 时要加上 -p 参数。 构建目录是 ../compile/<KERNEL_NAME>.PROF , 例如, 一个 GENERIC 内核的构建目录在 ../compile/GENERIC.PROF.
参照一个在i386架构上怎样启用分析选项(profiling)编译内核的快速指南, 这里假定你要的源代码在 /usr/src ,并且使用 GENERIC 配置, 当然这可能并非一定适合你:
18.7.1.1. 使用kgmon
要运行kgmon:接着, 将数据发送至文件 gmon.out:
现在, 要使输出文件可读:
因为gmon正在寻找 gmon.out, 它应该可以在当前的工作目录找到它.
如果只单独运行kgmon, 你可能不能获得你所需的信息, 但是如果你比较了两个不同的内核, 就会知道应该使用的好基准。 如果一个子系统既属于好的基准又在新(或不同)内核内,那么强调它通常是一个好主意。
参照一个在i386架构上怎样启用分析选项(profiling)编译内核的快速指南, 这里假定你要的源代码在 /usr/src ,并且使用 GENERIC 配置, 当然这可能并非一定适合你:
- cd /usr/src/sys/arch/i386/conf
- config -p GENERIC
- cd ../compile/GENERIC.PROF
- make depend && make
- cp /netbsd /netbsd.old
- cp netbsd /
- reboot
18.7.1.1. 使用kgmon
要运行kgmon:
代码: 全选
$ kgmon -b
kgmon: kernel profiling is running.
代码: 全选
$ kgmon -p
代码: 全选
$ gprof /netbsd > gprof.out
如果只单独运行kgmon, 你可能不能获得你所需的信息, 但是如果你比较了两个不同的内核, 就会知道应该使用的好基准。 如果一个子系统既属于好的基准又在新(或不同)内核内,那么强调它通常是一个好主意。