我需要分析我正在使用 strace 的应用程序的性能。但是,我真的不知道如何解释 strace 发出的各种系统调用。其中一些示例如下:
(A) lseek(3, 1600, SEEK_SET) = 1600
(B) write(3, "G_DATA 300 0 "..., 800) = 800
(C) close(3) = 0
(D) mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b600b179000
(E) munmap(0x2b600b179000, 4096) = 0
(F) fstat(3, {st_mode=S_IFREG|0644, st_size=1600, ...}) = 0
如果有人能用简单的英语简要解释从 (A) 到 (F) 的这些行在 I/O、传输的数据、对性能的重要性等方面的真正含义,我将不胜感激。
我浏览了 strace 的手册页,但仍然不是很自信。如果您有任何其他建议让我阅读,那就太好了。
我有一些操作系统的背景知识,并且了解系统调用、内存、虚拟内存、调度等是什么。