1

良い一日。

subprocess.Popen仮想メモリのサイズを使用して要求する新しいプロセスを開始するとpsutil.Process.memory_info()、21 メガバイトを超えるのはなぜですか? Popen (メインスクリプトによって渡されたstdinから読み取ったデータを単に印刷することによって開始されるスクリプト内)

main.py

from subprocess import Popen, PIPE, STDOUT
import sys, psutil, shlex

with Popen(shlex.split('python3 ./test.py'), stdin=PIPE, stdout=PIPE, stderr=STDOUT) as proc:

main_stdin = sys.stdin.read()
print('Writting main STDIN stream:', main_stdin)
proc.stdin.write(bytes(main_stdin, 'UTF-8')) # "redirect" main's stdin to test's stdin

mem_info = psutil.Process(proc.pid).memory_info()
print('RSS:', mem_info.rss/1048576) # bytes to megabytes
print('VMS:', mem_info.vms/1048576)

sub_stdout = proc.communicate()[0].decode('UTF-8')
print('Reading sub STDOUT: ', sub_stdout)

test.py

from sys import stdin

print(stdin.read())

Ubuntu 14.04、パイソン 3.4

ありがとうございました!

4

0 に答える 0