Measuring Memory Footprint
The memory footprint analysis tool is an analysis tool that measures the amount of memory used during the application run. It measures the memory at the cache line granularity (each cache line is 64 bytes). Optionally, it can also measure the memory footprint at the page granularity and you need to specify the page size.
Intel® SDE provides two types of memory footprint analysis, the default is throughout the region of interest (defined by the The Controller) or a periodic measurements. The period can be defined in time (wall-clock milliseconds) or by instruction count.
The memory footprint analysis tool is useful for checking if the workload is resident in certain cache level and the developer can update the workload memory footprint size to match the analysis requirements.
% sde -skx -footprint -- myapp
Will give an output of the form:
# LEGEND :
#==========
# ST = lines (or pages) with STORE only
# LD = lines (or pages) with LOAD only
# CD = lines (or pages) with CODE only
# LD+ST = lines (or pages) with LOAD and SOTRE
# CD+LD = lines (or pages) with CODE and LOAD
# CD+ST = lines (or pages) with CODE and STORE
# C+L+S = lines (or pages) with CODE, LOAD, and STORE
# NEW = new accesses within interval
# =========================== CACHE LINES ============================
# PERIOD[ms] TID LOAD STORE LD+ST CODE CD+LD CD+ST C+L+S NEW
# THREAD_START 0
-- 0 2745 478 853 1756 4 0 0 5836
-- all 2745 478 853 1756 4 0 0 5836
# EOF
Example for periodic footprint analysis:
% sde -skx -footprint -fp_time 100 -- myapp
Will give an output of the form:
...
# =========================== CACHE LINES ============================
# PERIOD[ms] TID LOAD STORE LD+ST CODE CD+LD CD+ST C+L+S NEW
# THREAD_START 0
# TICK 1
100 0 16 6 17 21 0 0 0 60
# TICK 2
200 0 79 8 13 26 0 0 0 119
# TICK 3
300 0 10 13 5 30 0 0 0 43
# TICK 4
400 0 27 10 12 25 0 0 0 52
The memory footprint analysis tool knobs:
- -footprint
Compute a memory footprint for loads, stores and code references [default 0]
- -footprint_page_size
Specify page size (0 means don’t collect pages) [default 0]
- -fp_icount
Instructions between working set epochs. 0 means one epoch for whole program [default 0]
- -fp_time
Milliseconds between working set epochs. 0 means one epoch for whole program. [default 0]
- -ofootprint
Specify output file name [default sde-footprint.txt]