我的程序只使用了打开/读取/写入函数,但是oprofile显示:
20537 2.9883 tyn_indexer tyn_indexer nodes_term32_flush
11966 1.7411 vmlinux vmlinux jbd2_journal_commit_transaction
11733 1.7072 vmlinux vmlinux __strnlen_user
10741 1.5629 vmlinux vmlinux nobh_truncate_page
9728 1.4155 vmlinux vmlinux generic_file_buffered_write
9443 1.3740 vmlinux vmlinux mpage_da_map_and_submit
9023 1.3129 vmlinux vmlinux do_get_write_access
7283 1.0597 vmlinux vmlinux invalidate_interrupt31
5894 0.8576 vmlinux vmlinux write_cache_pages_da
5332 0.7758 vmlinux vmlinux journal_submit_commit_record
5316 0.7735 vmlinux vmlinux hugetlbfs_symlink
generic_file_buffered_write是如何实现的,open/read/write函数是否具有缓冲功能?
open
是一个未经缓冲的系统调用,但是generic_file_buffered_write
可能被其他东西引入。oprofile命令使用了什么?你的程序是静态链接还是动态链接的?如果你在程序上运行nm
命令,你是否看到了generic_file_buffered_write
这个名称? - gbulmer