1
2
在Linux上,您可以编写一个小程序,对times()和fread()执行大量调用,并使用strace-c测量系统调用时间。 例如
这是buf 4096的时候(fread每次都会调用read())
这是16岁的时候
|
2
3
这意味着,如果您按顺序从文件中读取数据,那么库将只发出一次系统调用,例如,100次读取(取决于缓冲区大小和一次读取的数据量)。
当
如果数据是通过NFS新获得的,那么我很有信心
|
3
1
times()只读取内核维护的特定于进程的数据。数据由内核维护,以便在进程退出时为wait()系统调用提供信息。因此,无论是否调用times(),都始终维护数据。调用times()的额外开销非常低 fread()、fwrite()等调用底层系统调用-read()&write(),调用驱动程序。然后驱动程序将数据放入内核缓冲区。在资源方面,这比调用times()要昂贵得多。 这就是你要问的吗? |
Sandeep · 从根目录开始打印完整的符号链接信息 2 年前 |
jojo · 用正则表达式搜索,但仅用sed替换字符串的一部分 2 年前 |
David Gall · 查找在特定日期从特定计算机登录的所有用户 2 年前 |
JLLMNCHR · 如何在Oracle中将大型表导出/假脱机到文件 6 年前 |