Mobile Phone/Android2011.11.21 16:15
smem memory reporting tool[1] 
 smem은 Linux systems에서 memory usage에 대한 많은 reporting을 하는 tool이다. 존재하는 Tool들과 달리 smem은 virtual memory system에서 library들과 application들에 의해서 사용되는 중요한 메모리 양인 PSS(Proportional set szie)를 report한다.
Physical memory의 많은 부분은 여러 Application 사이에서 공유되어 지기 때문에, RSS(Resident set size)로 알려진 Memory Usage의 표준 측정은 Memory usage를 과대하게 평가할 것이다. PSS는 대신에 실제 측정을 하기위한 각각 공유된 공간의 각각의 Application "fair share"를 측정한다.

Process Memory Metrics[2]
USS (Unique Set Size)
: 어느 다른 Process와 mapping되지 않은 오직 그 Process에 mapping된 Process의 Page 수를 나타냄. 이것은 만약 process가 unload되어 질때 복원되는 메모리의 양이다.

PSS (Proportional Set Size)
:유일하게 Process에 mapping된 모든 페이지의 수 + 각각 공유된 page의 비율(그 page를 mapping한 process들의 수에 비례적인 비율). 예로, 만약 Process가 어떤 다른 Process와 mapping되지 않은 1 page와 mapping되어 졌다면(USS=1), 그리고 어느 다른 process와 mapping된 두번째 page가 이 Process와 mapping되면, PSS 값은 1.5로 나타날 것이다. 만약 3 user들의 공유된 Page가 있다면, PSS는 1.33 일것이다.

RSS (Resident Set Size)
Linux에서 ps 그리고 top와 같은 utility들에 의해 report되는 대부분 공통적인 process당 메모리 측정 척도. 그러나 많이 신용하지 않는다. RSS는 특정 process에의해서 mapping된 page들의 총수를 타나내며, 모든 공유된 Page들을 100% 포함한다. 각 process가 Process/Component Matrix로 보여질때, 이것의 가로행에서 모든 세로행의 page 수 합은 process를 위한 RSS 값과 같다.

smem은 많은 특징이 있다.
-system overview listing
-listings by process, mapping, user
-filtering by process, mapping, or user
-configurable columns from multiple data sources
-configurable output units and percentages
-configurable headers and totals
-reading live data from /proc
-reading data snapshots from directory mirrors or compressed tarballs
-lightweight capture tool for embedded systems
-built-in chart generation

smem을 사용하기 위한 요구 사항.
-kernel은 2.6.27보다 높아야 함.
-Python은 2.4.
-char generation을 위한 matplotlib library.(부가적, 자동 감지함).

smem 기본 사용.
Show basic process information smem
Show library-oriented view smem -m
Show user-oriented view smem -u
Show system view smem -R 4G -K /path/to/vmlinux -w
Show totals and percentages smem -t -p
Show different columns smem -c "name user pss"
Sort by reverse RSS smem -s rss -r
Show processes filtered by mapping smem -M libxml
Show mappings filtered by process smem -m -P [e]volution
Read data from capture tarball smem --source capture.tar.gz
Show a bar chart labeled by pid smem --bar pid -c "pss uss"
Show a pie chart of RSS labeled by name smem --pie name -s rss

- 최근 버전은 여기에서 구할 수 있으며, hg clone http://selenic.com/repo/smem 으로 가장 최근 소스를 구할 수 있다.

ref:

[1]smem memory reporting tool,"http://www.selenic.com/smem/"
[2]Capturing Process Memory Usage Under Linux, "http://www.eqware.net/Articles/CapturingProcessMemoryUsageUnderLinux/index.html"

'Mobile Phone > Android' 카테고리의 다른 글

Be Filter  (0) 2017.06.14
음성 레코딩앱 vRec HD  (0) 2017.02.16
smem memory reporting tool  (0) 2011.11.21
android adb shell system 권한 변경  (0) 2011.11.15
Android Source[미완료]  (0) 2010.12.08
android 64bit에서 Build해야한다고 에러 날때  (0) 2010.12.08
Posted by Act of God