回答編集履歴
1
コメントに対する追記
test
CHANGED
@@ -19,3 +19,85 @@
|
|
19
19
|
|
20
20
|
|
21
21
|
注意点はtimeコマンドはシェル組み込みコマンドではなくgnu版を呼ぶ必要がある点です。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
コメントからの質問に対する追記:
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
メモリ使用量やCPU使用量のプログラムの実行環境を阻害するものを取り除いた上限値は
|
30
|
+
|
31
|
+
コードの内容で決定します。その上であまりメモリやCPUの使用量が上がらない場合は
|
32
|
+
|
33
|
+
そのようになるコードを書いているだけです。
|
34
|
+
|
35
|
+
コードを変えずに外部のコマンドからいじっても変更することはできません。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
例えばとあるコマンドを実行した結果を表示したとき、
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
```sh
|
44
|
+
|
45
|
+
$ /usr/bin/time -v XXXX
|
46
|
+
|
47
|
+
Command being timed: "XXXX"
|
48
|
+
|
49
|
+
User time (seconds): 4.82
|
50
|
+
|
51
|
+
System time (seconds): 4.57
|
52
|
+
|
53
|
+
Percent of CPU this job got: 41%
|
54
|
+
|
55
|
+
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:22.65
|
56
|
+
|
57
|
+
Average shared text size (kbytes): 0
|
58
|
+
|
59
|
+
Average unshared data size (kbytes): 0
|
60
|
+
|
61
|
+
Average stack size (kbytes): 0
|
62
|
+
|
63
|
+
Average total size (kbytes): 0
|
64
|
+
|
65
|
+
Maximum resident set size (kbytes): 38384
|
66
|
+
|
67
|
+
Average resident set size (kbytes): 0
|
68
|
+
|
69
|
+
Major (requiring I/O) page faults: 9492
|
70
|
+
|
71
|
+
Minor (reclaiming a frame) page faults: 609811
|
72
|
+
|
73
|
+
Voluntary context switches: 110213
|
74
|
+
|
75
|
+
Involuntary context switches: 24058
|
76
|
+
|
77
|
+
Swaps: 0
|
78
|
+
|
79
|
+
File system inputs: 0
|
80
|
+
|
81
|
+
File system outputs: 0
|
82
|
+
|
83
|
+
Socket messages sent: 94
|
84
|
+
|
85
|
+
Socket messages received: 4939
|
86
|
+
|
87
|
+
Signals delivered: 875
|
88
|
+
|
89
|
+
Page size (bytes): 4096
|
90
|
+
|
91
|
+
Exit status: 0
|
92
|
+
|
93
|
+
```
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
トータル実行時間`Elapsed (wall clock) time (h:mm:ss or m:ss): 0:22.65`に対し、
|
98
|
+
|
99
|
+
`User time (seconds): 4.82`と`System time (seconds): 4.57`を差し引いた13.26秒はI/O待ちです。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
I/O待ちとはタイマーやディスクからの読み書き完了待ちや通信のレスポンス待ちなどです。I/O待ちが複数ある時これらを並行処理するようにしてあげると、よりメモリを使いながらCPUの使用率を上げることができます。うまくいけば全体の処理時間を短縮できます。
|