(a) bash JAVA jar (이후 my_shell_script
)를 호출하는 쉘 스크립트와 (b) 다른 함수를 가져 오는 Python 스크립트 파이썬 패키지는 파이썬 이외의 패키지 나 소프트웨어 (이하 my_Python_script
)를 호출하지 않습니다. 두 스크립트 모두 같은 목적을 가지고 있습니다. 동일한 입력 (이하 testinput
)을 사용하고 대략 동일한 출력을 생성합니다.동일한 작업을 위해 쉘 스크립트와 Python 스크립트의 메모리 사용량 비교
두 스크립트의 메모리 사용량을 측정 할 때 시간의 함수로 비교하고 싶습니다.
는이를 위해, I는 ms_print
통해 괴 출력 요약 하였다 (밀리 초까지의 time_unit 설정)를 사용 massif
valgrind
개재 스크립트를 실행한다.
INF=testinput
# Testing Shell script
valgrind --tool=massif --pages-as-heap=yes --time-unit=ms --massif-out-file=${INF}_shell.out bash my_shell_script -f $INF -j my_java_jar
ms_print --threshold=50.0 ${INF}_shell.out > ${INF}_shell.summary
# Testing Python script
valgrind --tool=massif --pages-as-heap=yes --time-unit=ms --massif-out-file=${INF}_Python.out python2 my_python_script $INF
ms_print --threshold=50.0 ${INF}_Python.out > ${INF}_Python.summary
내가 htop
를 통해 무엇을보고와 거의 일치 my_python_script
에 대한 메모리 사용, 이것은 my_shell_script
의 경우에는 해당되지 않습니다 Valgrind의/대산 괴 기록하는 동안. htop
에 대한 통계는 my_shell_script
실행 중 GB의 메모리 사용을 나타내지 만 valgrind/massif는 사용 된 메모리가 수십 MB에 불과합니다.
따라서 valgrind/massif는 bash 코드의 메모리 사용을 기록하지만 bash 코드가 호출하는 JAVA jar가 아닌 것으로 판단됩니다.
my_shell_script
의 메모리 사용량을 시간의 함수로 올바르게 측정하려면 어떻게해야합니까?