Đó là đầu ra htop của tôi:
Ví dụ, tôi bối rối bởi kịch bản ruby này:
Có bao nhiêu bộ nhớ vật lý đang sử dụng? 3+1+8+51+51
? 51
? 51+51
?
vâng, tôi đang nhìn nó Nhưng cái nào là sử dụng bộ nhớ theo kịch bản của tôi? Tại sao có hai
—
Lai Yu-Hsuan
51
s? Nó có tiêu thụ 102 megabyte không? Hay chỉ có 51 megabyte? Trong quá trình RES ngoài chứa RES quá trình bên trong, lý do tại sao 3
, 1
, 8
đều ít hơn 51
?
Có hai 51 vì quá trình rẽ nhánh. Nó hầu như không tiêu thụ 102 megabyte vì hai quy trình đều sử dụng cùng 51 megabyte, nhưng bạn không thể dễ dàng biết được. Quá trình RES khác chứa quy trình bên trong nếu bộ nhớ đó cũng nằm trong quy trình khác chứ không phải nếu không. Các trường RES cho bạn biết mỗi bộ nhớ đang sử dụng bao nhiêu bộ nhớ vật lý, nhưng các quá trình khác có thể (hoặc có thể không) sử dụng bộ nhớ vật lý tương tự đó.
—
David Schwartz
Nếu bạn muốn biết hai quy trình có sử dụng cùng một bộ nhớ hay không, hãy sử dụng pmap -d <process id>
—
Sirch
@ LaiYu-Hsuan: Vâng, bạn sai rồi. Các trang không được sao chép, chúng được chia sẻ. Chúng chỉ được sao chép nếu một trong hai quá trình ghi vào trang, sau đó chúng phải không được chia sẻ. (Cái này được gọi là "bản sao trên ghi" hoặc "CoW".)
—
David Schwartz
RES
cột là một trong những bạn muốn xem xét.