私はアルゴリズムをC++で実装していますが、実装の中では、キャッシュミス、命令、分岐ミスなどの統計情報を数えます。この情報は末尾にcout
と表示されています。しかし、実装がどれだけのスペースを使用しているかも知りたいです。 /usr/bin/time -vから出力を受け取る方法は?
result = subprocess.check_output(['/usr/bin/time', '-v','./program',input])
が、残念ながら唯一
./program
からの出力は、同様
/usr/bin/time
の出力を
result
に格納されていない次のように私は
subprocess
を使用しています。ここ
/usr/bin/time
からの一つの可能な出力は次のようになります。
User time (seconds): 3.41
System time (seconds): 0.06
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.48
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 344016
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 72338
Voluntary context switches: 1
Involuntary context switches: 6
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
私はMaximum resident set size (kbytes):
で唯一興味を持っています。何とかこの大文字をresult
の中に保存できたら、私はそれを解析できることを期待していました。しかし、出力はresult
にはまったく格納されず、単純に出力されます。この問題にアプローチする最善の方法は何ですか?