Tôi đang xây dựng một máy chủ bằng C++ đọc rất nhiều từ đĩa. Khi ghi với perf tôi nhận được báo cáo này:
28,20% máy chủ [kernel.kallsyms] [k] copy_user_generic_string
18,14% máy chủ [kernel.kallsyms] [k] clear_page_rep
7,31% máy chủ máy chủ [.] SearchEngine::value_intersection<FullTextRecord>
5,64% máy chủ máy chủ [.] SearchEngine::value_intersection<DomainLinkFullTextRecord>
4,20% máy chủ libz.so.1.2.11 [.] thổi phồng
1,63% máy chủ [kernel.kallsyms] [k] rmqueue
1,39% máy chủ máy chủ [.] SearchEngine::value_intersection<LinkFullTextRecord>
1,23% máy chủ [kernel.kallsyms] [k] page_fault
1,15% máy chủ [kernel.kallsyms] [k] native_queued_spin_lock_slowpath
1,04% máy chủ [kernel.kallsyms] [k] xas_load
0,87% máy chủ [kernel.kallsyms] [k] __pagevec_lru_add_fn
0,81% máy chủ [kernel.kallsyms] [k] find_get_entry
0,80% máy chủ libz.so.1.2.11 [.] crc32_z
0,65% máy chủ [kernel.kallsyms] [k] down_read_trylock
0,61% máy chủ [kernel.kallsyms] [k] workingset_activation
0,56% máy chủ [kernel.kallsyms] [k] iommu_map_page
0,51% máy chủ [kernel.kallsyms] [k] generic_file_buffered_read
0,50% máy chủ libc-2.31.so [.] __memmove_avx_unaligned_erms
Có cách nào để biết phần nào trong mã của tôi gây ra copy_user_generic_string và clear_page_rep cao không?
Đã thử tìm kiếm thông tin về hai điều đó trực tuyến nhưng không thể tìm thấy bất kỳ tài liệu nào tốt.