作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在主机和 QEMU guest 中的 strace -tt
(报告所有系统调用的时间戳)下运行了 sleep 1
,并注意到到达某个系统调用所需的时间(clock_nanosleep
) 在客人的情况下几乎是两倍:
这里是 full host strace -tt sleep 1这是full QEMU strace -tt sleep 1 .
以下是您已经可以看出差异的摘录:
主持人:
Time diff timestamp (as reported by strace)
0.000 / 0.653 ms: 13:13:56.452820 execve("/usr/bin/sleep", ["sleep", "1"], 0x7ffded01ecb0 /* 53 vars */) = 0
0.653 / 0.023 ms: 13:13:56.453473 brk(NULL) = 0x5617efdea000
0.676 / 0.063 ms: 13:13:56.453496 arch_prctl(0x3001 /* ARCH_??? */, 0x7fffeb7041b0) = -1 EINVAL (Invalid argument)
QEMU:
Time diff timestamp (as reported by strace)
0.000 / 1.008 ms: 12:12:03.164063 execve("/usr/bin/sleep", ["sleep", "1"], 0x7ffd0bd93e50 /* 13 vars */) = 0
1.008 / 0.119 ms: 12:12:03.165071 brk(NULL) = 0x55b78c484000
1.127 / 0.102 ms: 12:12:03.165190 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffcb5dfd850) = -1 EINVAL (Invalid argument)
cpupower frequency-set --governor performance
时序是:
/dev/shm
(-drive file=/dev/shm/root
):
我修改了 strace 的“裸”输出,以便它包括 (1) 从 0 开始的第一个系统调用的时间,然后是 (2) 系统调用的持续时间,以便于理解。为了完整起见,脚本是 here .
我是这样启动qemu的:
qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 4G -nodefaults -no-user-config -nographic -no-reboot \
-kernel $HOME/devel/vmlinuz-5.13.0-20-generic \
-append 'earlyprintk=hvc0 console=hvc0 root=/dev/sda rw' \
-drive file=$HOME/devel/images/root,if=ide,index=0,media=disk,format=raw \
-device virtio-serial,id=virtio-serial0 -chardev stdio,mux=on,id=host-io,signal=off -device virtconsole,chardev=host-io,id=console0
最佳答案
事实证明,我的(定制内核)缺少 CONFIG_HYPERVISOR_GUEST=y
选项(以及几个嵌套选项)。
关于linux - 在微不足道的 `sleep 1` 的情况下,是什么导致 QEMU 的开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69864854/
什么时候 lambda a 可以保证是微不足道的,如果有的话? 我假设如果它只捕获普通类型或什么都不捕获,那将是微不足道的。不过,我没有任何标准语言来支持这一点。 我的动机是将一些代码从 Visual
看似微不足道,但找不到解决方案 - 我需要编写查询,根据属性值获取人员(例如,让我找到具有属性“1”和“2”和“3”的人) *澄清:可以对三个以上的属性值进行查询- 它将由用户选择 - 从 0 到 n
我是一名优秀的程序员,十分优秀!