āļāļĩāđāļāļ·āļāļāļģāļŠāļąāđāļ memusage āļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāļāļđāđāđāļŦāđāļāļĢāļīāļāļēāļĢāđāļŪāļŠāļāđāļāļĢāļĩāļāļāļ OnWorks āđāļāļĒāđāļāđāđāļ§āļīāļĢāđāļāļŠāđāļāļāļąāļāļāļāļāđāļĨāļāđāļāļĢāļĩāļāļāļāđāļĢāļē āđāļāđāļ Ubuntu Online, Fedora Online, āđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ Windows āļŦāļĢāļ·āļāđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ MAC OS
āđāļāļĢāļāļāļēāļĢ:
āļāļ·āđāļ
memusage - āļāļēāļĢāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļāļĢāđāļāļĨāđāļāļāļāđāļāļĢāđāļāļĢāļĄ
āđāļĢāļ·āđāļāļāļĒāđāļ
āļāļ§āļēāļĄāļāļĢāļāļāļģ [āļāļąāļ§āđāļĨāļ·āļāļ] ... āđāļāļĢāļāļāļēāļĢ [āđāļāļĢāđāļāļĢāļĄāļāļąāļ§āđāļĨāļ·āļāļ] ...
DESCRIPTION
āļāļ§āļēāļĄāļāļĢāļāļāļģ āđāļāđāļāļŠāļāļĢāļīāļāļāđāļāļļāļāļāļĩāļāļĩāđāđāļāļĢāđāļāļĨāđāļāļēāļĢāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļāļāđāļāļĢāđāļāļĢāļĄ āđāļāļĢāļāļāļēāļĢ. āļĄāļąāļ
āđāļŦāļĨāļāļĨāđāļ§āļāļŦāļāđāļē libmemusage.so āļŦāđāļāļāļŠāļĄāļļāļāđāļāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļāļāļāļāļđāđāđāļāļĢ (āļāđāļēāļāļāļēāļ ld_preload
āļāļąāļ§āđāļāļĢāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄ āļāļđ LD.SO(8)). NS libmemusage.so āļŦāđāļāļāļŠāļĄāļļāļāļāļīāļāļāļēāļĄāļāļēāļĢāļāļąāļāļŠāļĢāļĢāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ
āđāļāļĒāļŠāļāļąāļāļāļąāđāļāļāļēāļĢāđāļāļĢāđāļāļāļĩāđ āļĄāļąāļĨāļĨāļāļ(3) āđāļāļĢ(3) āļāļĢāļĩ(3) āđāļĨāļ° āļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ(3); āļŦāļĢāļ·āļāđāļāļĢ
āđāļāļĒāļąāļ āļĄāļĄ(2) āļĢāļĩāđāļĄāļ(2) āđāļĨāļ° āļĄāļļāļāđāļĄāļ(2) āļŠāļēāļĄāļēāļĢāļāļŠāļāļąāļāļāļąāđāļāđāļāđ
āļāļ§āļēāļĄāļāļĢāļāļāļģ āļŠāļēāļĄāļēāļĢāļāļŠāđāļāļāļāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĢāļ§āļāļĢāļ§āļĄāđāļāļĢāļđāļāđāļāļāļāđāļāļāļ§āļēāļĄāļŦāļĢāļ·āļāļŠāļēāļĄāļēāļĢāļāđāļāđ memusagestat(1) (āļāļđ
-p āļāļąāļ§āđāļĨāļ·āļāļāļāđāļēāļāļĨāđāļēāļ) āđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļāļĨāđ PNG āļāļĩāđāļĄāļĩāļāļēāļĢāđāļŠāļāļāļāļĢāļēāļāļīāļāļāļāļ
āļāđāļāļĄāļđāļĨāļāļĩāđāđāļāđāļāļĢāļ§āļāļĢāļ§āļĄ
āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ āļāļēāļĢāđāļāđ āļŠāļĢāļļāļ
āđāļāļēāļāđāļāļļāļāļāļĢāļĢāļāļąāļ "āļŠāļĢāļļāļāļāļēāļĢāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ" āđāļāļĒ āļāļ§āļēāļĄāļāļĢāļāļāļģ āļāļĢāļ°āļāļāļāļāđāļ§āļĒāļŠāļēāļĄāļāļīāļĨāļāđ:
āļāļāļ āļāļąāđāļāļŦāļĄāļ
āļāļĨāļĢāļ§āļĄāļāļāļ āļāļāļēāļ āļāđāļāđāļāđāđāļĒāđāļāļāļāļāļāļąāđāļāļŦāļĄāļ āļĄāļąāļĨāļĨāļāļ(3) āļāļēāļĢāđāļāļĢ āļāļĨāļīāļāļ āļąāļāļāđāļāļāļāļāļēāļĢāđāļāđāđāļĒāđāļ
(āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ*āļāļāļēāļ) āļāļāļāļāļąāđāļāļŦāļĄāļ āđāļāļĢ(3) āļāļēāļĢāđāļāļĢāđāļĨāļ°āļāļĨāļĢāļ§āļĄāļāļāļ āļāļ§āļēāļĄāļĒāļēāļ§ āļāđāļāđāļāđāđāļĒāđāļāļāļāļāļāļąāđāļāļŦāļĄāļ āļĄāļĄ(2)
āđāļāļĢ. āđāļāļāļĢāļāļĩāļāļāļ āļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ(3) āđāļĨāļ° āļĢāļĩāđāļĄāļ(2) āļāđāļēāļāļāļēāļāđāļŦāļĄāđāļāļāļ an
āļāļēāļĢāļāļąāļāļŠāļĢāļĢāļĄāļĩāļāļāļēāļāđāļŦāļāđāļāļ§āđāļēāļāļāļēāļāđāļāļīāļĄ āļāļĨāļĢāļ§āļĄāļāļāļāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļāļąāļāļāļĨāđāļēāļ§āļāļąāđāļāļŦāļĄāļ
(āļāļāļēāļāđāļŦāļĄāđāļĨāļāļāļāļēāļāđāļāđāļē) āļāļđāļāđāļāļīāđāļĄāđāļāđāļēāļĄāļē
āļāļāļ āļĒāļāļ
āļŠāļđāļāļŠāļļāļāļāļāļāļāļąāđāļāļŦāļĄāļ āļāļāļēāļ āļāđāļāđāļāđāđāļĒāđāļāļāļāļ āļĄāļąāļĨāļĨāļāļ(3) āļāļĨāļīāļāļ āļąāļāļāđāļāļąāđāļāļŦāļĄāļāļāļāļ āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ*āļāļāļēāļ of
āđāļāļĢ(3), āļāļąāđāļāļŦāļĄāļ āļāļāļēāļ āļāđāļāđāļāđāđāļĒāđāļāļāļāļ āļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ(3) āļāļ§āļēāļĄāļĒāļēāļ§ āļāđāļāđāļāđāđāļĒāđāļāļāļāļ āļĄāļĄ(2) āđāļĨāļ°
āđāļŦāļĄāđ_āļāļāļēāļ āļāđāļāđāļāđāđāļĒāđāļāļāļāļ āļĢāļĩāđāļĄāļ(2)
āļāļāļ āļĒāļāļ
āļāđāļāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļąāļāļāđāļāļąāļāļāļĩāđāļāļđāļāļĄāļāļāļīāđāļāļāļĢāđāļāļĢāļąāđāļāđāļĢāļ āļāļĩāđāļāļĒāļđāđāļāļąāļ§āļāļĩāđāļŠāđāļāđāļ
(āļāļąāļ§āļāļĩāđāļŠāđāļāđāļāļāļēāļ) āļāļđāļāļāļąāļāļāļķāļ āļŦāļĨāļąāļāļāļēāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļąāļāļāđāļāļąāļāđāļāđāļĨāļ°āļāļĢāļąāđāļ stack . āļāļĢāļīāļ
āļāđāļēāļāļāļĩāđāļāļĒāļđāđāļāļąāļ§āļāļĩāđāđāļĨāļ°āļāļ§āļēāļĄāđāļāļāļāđāļēāļāļāļēāļāļāļąāļ§āļāļĩāđāļŠāđāļāđāļāļāļēāļ
āļāļģāļāļ§āļ āļāđāļēāļŠāļđāļāļŠāļļāļāļāļāļāļāļ§āļēāļĄāđāļāļāļāđāļēāļāđāļŦāļĨāđāļēāļāļĩāđāļāļ·āļāļĒāļāļāļŠāđāļāđāļ
āļāļąāļāļāļĩāļāļēāļĄāļāļĢāļĢāļāļąāļāļŠāļĢāļļāļāļāļĩāđ āļāļēāļĢāļēāļāļāļ°āđāļŠāļāļāļāļģāļāļ§āļāļāļēāļĢāđāļāļĢ, āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļąāđāļāļŦāļĄāļ
āļāļąāļāļŠāļĢāļĢāļŦāļĢāļ·āļāļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ āđāļĨāļ°āļāļģāļāļ§āļāļāļēāļĢāđāļĢāļĩāļĒāļāļāļĩāđāļĨāđāļĄāđāļŦāļĨāļ§āļŠāļģāļŦāļĢāļąāļāđāļāđāļĨāļ°āļāļąāļāļāđāļāļąāļāļāļĩāđāļāļđāļāļŠāļāļąāļāļāļąāđāļ āļŠāļģāļŦāļĢāļąāļ
āļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ(3) āđāļĨāļ° āļĢāļĩāđāļĄāļ(2) āļāđāļāļāđāļāļīāđāļĄāđāļāļīāļĄ "nomove" āđāļŠāļāļāļāļēāļĢāļāļąāļāļŠāļĢāļĢāļāļĩāđāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļ
āļāļĩāđāļāļĒāļđāđāļāļāļāļāļĨāđāļāļāđāļĨāļ°āļāđāļāļ "dec" āđāļāļīāđāļĄāđāļāļīāļĄāđāļŠāļāļāļāļēāļĢāļāļąāļāļŠāļĢāļĢāļāļĩāđāļĨāļāļĨāļ
āļāļāļēāļāļāļāļāļāļĨāđāļāļ āļŠāļģāļŦāļĢāļąāļ āļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ(3) āļāđāļāļāđāļāļīāđāļĄāđāļāļīāļĄ "āļāļĢāļĩ" āđāļŠāļāļāļāļēāļĢāļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ
āļāļĩāđāļāļģāđāļŦāđāļāļĨāđāļāļāđāļāđāļāļāļīāļŠāļĢāļ° (āđāļāđāļ āļāļāļēāļāļāļĩāđāļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđāļāļ·āļ 0)
"realloc/āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļąāđāļāļŦāļĄāļ" āļāļāļāđāļāļēāļāđāļāļļāļāļāļēāļĢāļēāļāđāļāļĒ āļāļ§āļēāļĄāļāļĢāļāļāļģ āđāļĄāđāļŠāļ°āļāđāļāļāļāļĢāļāļĩāļāļĩāđ
āļāļąāļāļŠāļĢāļĢāđāļŦāļĄāđ(3) āđāļāđāđāļāļ·āđāļāļāļąāļāļŠāļĢāļĢāļāļĨāđāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļŦāļĄāđāđāļŦāđāļĄāļĩāļāļāļēāļāđāļĨāđāļāļĨāļāļāļ§āđāļēāđāļāļīāļĄ
āļāļķāđāļāļāļēāļāļāļģāđāļŦāđāļāļĨāļĢāļ§āļĄāļāļāļāđāļāļĨāļĨāđ "āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļąāđāļāļŦāļĄāļ" āļāļąāđāļāļŦāļĄāļ (āļĒāļāđāļ§āđāļ "āļ§āđāļēāļ") āļĄāļĩāļāļāļēāļāđāļŦāļāđāļāļ§āđāļē
āđāļāļĨāļĨāđ "āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļ§āđāļēāļ/āļāļąāđāļāļŦāļĄāļ"
Histogram for āļāļīāļāļāļąāđāļ āļāļāļēāļ
"āļŪāļīāļŠāđāļāđāļāļĢāļĄāļŠāļģāļŦāļĢāļąāļāļāļāļēāļāļāļĨāđāļāļ" āđāļŦāđāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļēāļĢāļāļąāļāļŠāļĢāļĢāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļāđāļāļāđāļēāļāđ
āļāļāļēāļāļāļąāļ
OPTIONS
-n āļāļ·āđāļ, --āļāļ·āđāļāđāļāļĢāļāļāļēāļĢ=āļāļ·āđāļ
āļāļ·āđāļāļāļāļāđāļāļĨāđāđāļāļĢāđāļāļĢāļĄāđāļāļĒāļąāļāđāļāļĢāđāļāļĨāđ
-p āđāļāļĨāđ, --png=āđāļāļĨāđ
āļŠāļĢāđāļēāļāļāļĢāļēāļāļīāļ PNG āđāļĨāļ°āđāļāđāļāđāļ§āđāđāļ āđāļāļĨāđ.
-d āđāļāļĨāđ, --āļāđāļāļĄāļđāļĨ=āđāļāļĨāđ
āļŠāļĢāđāļēāļāđāļāļĨāđāļāđāļāļĄāļđāļĨāđāļāļāļēāļĢāļĩāđāļĨāļ°āđāļāđāļāđāļ§āđāđāļ āđāļāļĨāđ.
-u, --āđāļĄāđāļĄāļĩāļāļąāļāđāļāļāļĢāđ
āļāļĒāđāļēāļāļąāļāđāļāļāļĢāđāđāļāļēāļāđāļāļļāļ
-b āļāļāļēāļ, --āļāļąāļāđāļāļāļĢāđ=āļāļāļēāļ
āļĢāļ§āļāļĢāļ§āļĄ āļāļāļēāļ āļĢāļēāļĒāļāļēāļĢāļāđāļāļāļāļĩāđāļāļ°āđāļāļĩāļĒāļāļāļāļāļĄāļē
--no-āļāļąāļāđāļ§āļĨāļē
āļāļīāļāļāļēāļĢāđāļāđāļāļēāļāļāļąāļ§āļāļąāļāđāļ§āļĨāļē (āļāļīāļāđāļāļĢāļ) āļāļēāļĢāļŠāļļāđāļĄāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļāļąāļ§āļāļĩāđāļŠāđāļāđāļ
-m, --mmap
āļĒāļąāļāļāļīāļāļāļēāļĄ āļĄāļĄ(2) āļĢāļĩāđāļĄāļ(2) āđāļĨāļ° āļĄāļļāļāđāļĄāļ(2)
-?, --āļāđāļ§āļĒāļāđāļ§āļĒ
āļāļīāļĄāļāđāļ§āļīāļāļĩāđāļāđāđāļĨāļ°āļāļāļ
--āļāļēāļĢāđāļāđāļāļēāļ
āļāļīāļĄāļāđāļāđāļāļāļ§āļēāļĄāļāļēāļĢāđāļāđāļāļēāļāļŠāļąāđāļāđ āđāļĨāđāļ§āļāļāļ
-V, --āļĢāļļāđāļ
āļāļīāļĄāļāđāļāđāļāļĄāļđāļĨāđāļ§āļāļĢāđāļāļąāļāđāļĨāļ°āļāļāļ
āļāļąāļ§āđāļĨāļ·āļāļāļāđāļāđāļāļāļĩāđāđāļāđāđāļāļāļēāļ°āđāļĄāļ·āđāļāļŠāļĢāđāļēāļāđāļāļēāļāđāļāļļāļāđāļāļāļāļĢāļēāļāļīāļ:
-t, --āļāļēāļĄāđāļ§āļĨāļē
āđāļāđāđāļ§āļĨāļē (āļĄāļēāļāļāļ§āđāļēāļāļģāļāļ§āļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļąāļāļāđāļāļąāļ) āđāļāđāļāļĄāļēāļāļĢāļēāļŠāđāļ§āļāļŠāļģāļŦāļĢāļąāļāđāļāļ X
-T, --āļāļąāđāļāļŦāļĄāļ
āļ§āļēāļāļāļĢāļēāļāļāļāļāļāļēāļĢāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļāļąāđāļāļŦāļĄāļāļāđāļ§āļĒ
--āļŦāļąāļ§āļāđāļ=āļāļ·āđāļ
āđāļāđ āļāļ·āđāļ āđāļāđāļāļāļ·āđāļāļāļĢāļēāļ
-x āļāļāļēāļ, --x-āļāļāļēāļ=āļāļāļēāļ
āļāļģāļāļĢāļēāļ āļāļāļēāļ āļāļīāļāđāļāļĨāļāļ§āđāļēāļ
-y āļāļāļēāļ, --y-āļāļāļēāļ=āļāļāļēāļ
āļāļģāļāļĢāļēāļ āļāļāļēāļ āļāļīāļāđāļāļĨāļŠāļđāļ
EXIT āļŠāļāļēāļāļ āļēāļ
āļŠāļāļēāļāļ°āļāļēāļĢāļāļāļāđāļāđāļēāļāļąāļāļŠāļāļēāļāļ°āļāļēāļĢāļāļāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđāļāļģāđāļāļĢāđāļāļĨāđ
āļāļąāļ§āļāļĒāđāļēāļ
āļāđāļēāļāļĨāđāļēāļāļāļĩāđāđāļāđāļāđāļāļĢāđāļāļĢāļĄāļāđāļēāļĒ āđ āļāļĩāđāļāļąāļāļŠāļĢāļĢāļāļĨāđāļāļāļāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļŦāļĄāđāđāļāđāļāļĢāļāļāļāļĩāđāđāļāļīāđāļĄāļāļķāđāļāļāļķāļāļāļļāļāļŠāļđāļāļŠāļļāļ
āļāđāļāļāļŦāļāđāļēāļāļąāđāļāļāļ°āļāļģāļāļēāļĢāļāļąāļāļŠāļĢāļĢāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļŦāļĄāđāđāļāđāļāļĢāļāļāđāļāļāļĨāđāļāļāđāļĨāđāļāđ āļāļĩāđāļāļ·āļāļāđāļēāđāļāđāļāļĻāļđāļāļĒāđ
āļŦāļĨāļąāļāļāļēāļāļāļāļĄāđāļāļĨāđāđāļāļĢāđāļāļĢāļĄāđāļĨāļ°āļĢāļąāļāļāļģāļŠāļąāđāļāļāđāļāđāļāļāļĩāđāđāļĨāđāļ§ āļāļĢāļēāļāļāļāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ
āļāļēāļĢāđāļāđāļāļēāļāđāļāļĢāđāļāļĢāļĄāļŠāļēāļĄāļēāļĢāļāļāļāđāļāđāđāļāđāļāļĨāđ memusage.png:
$ āļāļ§āļēāļĄāļāļĢāļāļāļģ --data=memusage.dat ./a.āļāļāļ
...
āļŠāļĢāļļāļāļāļēāļĢāđāļāđāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģ: āļāļģāļāļ§āļāļŪāļĩāļāļāļąāđāļāļŦāļĄāļ: 45200, āļāļĩāļāļŪāļĩāļ: 6440, āļŠāđāļāđāļāļāļĩāļ: 224
āđāļāļĢāļāļąāđāļāļŦāļĄāļ āļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāđāļāļĢāļĨāđāļĄāđāļŦāļĨāļ§āļāļąāđāļāļŦāļĄāļ
āļĄāļąāļĨāļĨāļāļ| 1 400 0
realloc| 40 44800 0 (nomove:40, āļ.āļ.:19, āļāļĢāļĩ:0)
āđāļāļĢāļĨāđāļāļ| 0 0 0
āļāļĢāļĩ| 1 440
āļŪāļīāļŠāđāļāđāļāļĢāļĄāļŠāļģāļŦāļĢāļąāļāļāļāļēāļāļāļĨāđāļāļ:
192-207 1 2% ================
...
2192-2207 1 2% ================
2240-2255 2 4% =================================
2832-2847 2 4% =================================
3440-3455 2 4% =================================
4032-4047 2 4% =================================
4640-4655 2 4% =================================
5232-5247 2 4% =================================
5840-5855 2 4% =================================
6432-6447 1 2% ================
$ memusagestat memusage.dat memusage.png
āđāļāļĢāļāļāļēāļĢ āđāļŦāļĨāđāļ
#āļĢāļ§āļĄ
# āļĢāļ§āļĄ
#āļāļģāļŦāļāļāļĢāļāļ 20
int
main(int argc, āļāđāļēāļ *argv[])
{
int āļāļąāļ, āđāļ;
āļāļīāļāļāđ *p;
printf("malloc: %zd\n", sizeof(int) * 100);
p = malloc(āļāļāļēāļāļāļāļ(int) * 100);
āļŠāļģāļŦāļĢāļąāļ (i = 0; i < CYCLES; i++) {
āļāđāļē (i < CYCLES / 2)
āđāļ = āļāļĄ;
āļāļ·āđāļ
NS--;
printf("realloc: %zd\n", sizeof(int) * (j * 50 + 110));
p = realloc(p, āļāļāļēāļāļāļāļ(int) * (j * 50 + 100));
printf("realloc: %zd\n", sizeof(int) * ((j+1) * 150 + 110));
p = realloc(p, āļāļāļēāļāļāļāļ(int) * ((j + 1) * 150 + 110));
}
āļāļĢāļĩ(p);
āļāļēāļāļāļāļ(EXIT_SUCCESS);
}
āđāļāđ memusage āļāļāļāđāļĨāļāđāđāļāļĒāđāļāđāļāļĢāļīāļāļēāļĢ onworks.net