分页: 1 / 1

《NetBSD指南-18.7.1.开始》

发表于 : 2010-03-05 14:08
leo
首先, 先看一下 Section 18.9, “内核调整”Chapter 31, 编译内核. 启用内核中的分析选项(profiling)建立内核的过程的区别是你运行config 时要加上 -p 参数。 构建目录是 ../compile/<KERNEL_NAME>.PROF , 例如, 一个 GENERIC 内核的构建目录在 ../compile/GENERIC.PROF.
参照一个在i386架构上怎样启用分析选项(profiling)编译内核的快速指南, 这里假定你要的源代码在 /usr/src ,并且使用 GENERIC 配置, 当然这可能并非一定适合你:
  1. cd /usr/src/sys/arch/i386/conf
  2. config -p GENERIC
  3. cd ../compile/GENERIC.PROF
  4. make depend && make
  5. cp /netbsd /netbsd.old
  6. cp netbsd /
  7. reboot
一旦内核就位并且系统重新启动后, 现在就可以开始监测并查看结果了。

18.7.1.1. 使用kgmon
要运行kgmon:

代码: 全选

$ kgmon -b
kgmon: kernel profiling is running.
接着, 将数据发送至文件 gmon.out:

代码: 全选

$ kgmon -p
现在, 要使输出文件可读:

代码: 全选

$ gprof /netbsd > gprof.out
因为gmon正在寻找 gmon.out, 它应该可以在当前的工作目录找到它.
如果只单独运行kgmon, 你可能不能获得你所需的信息, 但是如果你比较了两个不同的内核, 就会知道应该使用的好基准。 如果一个子系统既属于好的基准又在新(或不同)内核内,那么强调它通常是一个好主意。