gpt4 book ai didi

linux - 为什么linux用户空间和内核空间的代码运行速度会有差异?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:45 24 4
gpt4 key购买 nike

当我在 Linux 用户空间和内核空间中运行一些简单的 while 循环代码并测量耗时时,我可以得到差异。

测试代码是访问Arm Cortex SoC芯片中的一些硬件寄存器。

for(k = 0; k < 100000; k++)
{ //I tested this code in user space and kernel space with IOCTL.
for(i = 0; i < 1000; i++)
{
tv2 = *(volatile UInt32 *)(0xfe110080);
*(volatile UInt32 *)(0xfe628024) = i + tv2 ;
}
}

结果是
用户层:52002.16 毫秒
内核层:32650.53 毫秒

内核层比用户层快 1.6 倍。

最佳答案

一般来说,用户层需要更多的时间,因为它很少额外调用来完成任务。

例如,以读取文件为例。要从用户层读取文件,我们调用 read(file_name)。此读取调用在内部调用内核读取调用,内核读取调用与磁盘设备驱动程序通信并获取数据。

因此,由于调用次数减少,内核层性能更好。

关于linux - 为什么linux用户空间和内核空间的代码运行速度会有差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8640176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com