我刚才只注意进程cpu使用的CPU资源了,忘了还有其它进程的,其他进程目前大约占了%3,稍微调整一下n,n=13200000,得到了50%的曲线,当然会有点波动。
注:上面说一个时钟周期执行一条指令是不合适的,各种指令的执行时间不同。计算机里的周期主要有时钟周期,机器周期,指令周期。一条指令的周期称为指令周期,由几个机器周期做成,而一个机器组成由几个时钟周期组成。上面的三条指令都需要取内存,因此时间长。如果把循环变量放在寄存器里,那么用的时间要小的多:
将内存数-8(%ebp)改为寄存器数%ebx
.L2:
movl $0, %ebx
jmp .L3
.L4:
addl $1, %ebx
.L3:
cmpl $13199999, %ebx
jle .L4
movl $60000, (%esp)
call usleep
jmp .L2
CPU利用率由50%降到了20