良い一日。
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
ありがとうございました!