如*将一个叫 的 程序编译为名叫 的可执行文件*你将输入下面的命令9
6 QQQQQQQQQQQQQQQQQQQQQQQQQQ`注意9
当你使用 6选项时*6后面必须跟一个文件名QQQQQQQQQQQQQQQQQQ
QQQQQQQQ`\同样有指定编译器处理多少的编译选项6选项告诉 \仅把源
代 码编译为目标代码而跳过汇编和连接的步骤这个选项使用的非常频繁因为它 使得编译
多个 程序时速度更快并且更易于管理缺省时 \建立的目标代 码文件有一个 的扩
展名6G编译选项告诉 \在为 代码产生了汇编语言文件后停止编译\产生的汇
编语言文件的缺省扩展名是 6F选项指示编译器仅对输入文件进 行预处理当这个选项
被使用时*预处理器的输出被送到标准输出而不是储存 在文件里优 化 选 项 当你用 \
编译 代码时*它会试着用最少的时间完成编译并且使编译 后的代码易于调试易于调试意
味着编译后的代码与源代码有同样的执行次序*编译后的代码没有经过优化有很多选项可
用于告诉 \在耗费更多编译时间 和牺牲易调试性的基础上产生更小更快的可执行文件
这些选项中最典型的是
6I和 6I选项6I选项告诉 \对源代码进行基本优化这些优化在大多数情况下都
会 使程序执行的更快6I选项告诉 \产生尽可能小和尽可能快的代码6I选项将使
编译的速度比使用 6I时慢但通常产生的代码执行速度会更快除了 6I和 6I优化选项
外*还有一些低级选项用于产生更快的代码这 些选项非常的特殊*而且最好只有当你完全
理解这些选项将会对编译后的代码 产生什么样的效果时再去使用这些选项的详细描述*请
参考 \的指南页*在命令行上键入 $'调试和剖析选项 \支持数种调试和剖
析选项在这些选项里你会最常用到的是 6和 6:选项6选项告诉 \产生能被 \+,
调试器使用的调试信息以便调试你的程序\提供了一个很多其他 编译器里没有的特
性*在 \里你能使 6和 6I"产生优化代码#联用这一点非常有用因为你能在与最终产
品尽可能相近的情 况下调试你的代码在你同时使用这两个选项时你必须清楚你所写的某些
代码 已经在优化时被 \作了改动关于调试 程序的更多信息请看下一节”用 A调试
程序” 6:选项告诉 \在你的程序里加入额外的代码*执行时*产生 :!5用的剖析
信息以显示你的程序的耗时情况关于 :!5的更多信息请参考 “:!5c一节
@7+$$
【实验报告】练习三:内核定时器 实验报告】练习三:
星期一*..月 . (*//<
练习三: 练习三:内核定时器 一 -@下得时间 ..时间的测量 有时候要计算程序执
行的时间比如要对算法进行时间分析这个时候可以使 用下面这个函数#
$5'%" ! $' * ! $_ _#0 之 中 _ 来 代 替
$5'%将时间保存在结构 之中 _一般使用 +,--来代替什么是 @的
$!机制
$!是 !' $!的缩写,它是建立在 @的 $!机制上的,可 以在定时
器时间到并触发后,自我进行重新设置的间隔定时器。系统为每个进程提供了三 个间隔定
时器,分别在各自独立的一个时间区域内递减。当其中任意一个定时器 到期时,就会发出
一个信号给进程,同时,定时器重新开始运作。三种定时器描 述如下: HHZFL&LF-真
实时钟,到期时送出 GH\-LZ信号。 HHZFL&DHL,-仅在进程运行时的计时,到期时
送出 GH\D-LZ信号。 HHZFL&LI]不仅在进程运行时计时,在系统为进程运作而运
行时它也计 时,与 HHZFL&DHL,-对比,该定时器通常为那些在用户态和核心态空间运
行 的应用所花去的时间计时,到期时送出 GH\LI]信号。 、 -@的普通 $!机制
和它的数据结构 .)de9这是一个长整数,表示以 ./$为单位的系统时间。de初
始 设置为 /,只要系统一直运行,de就不断增加。 结构:用于保存时间值,分为两部