回答編集履歴
1
サンプル追加
answer
CHANGED
@@ -1,3 +1,29 @@
|
|
1
1
|
全ファイルの全レコードをメモリ上に読み込むようになっているので、メモリを大量に消費してページングが多発しているんだと思います。
|
2
2
|
|
3
|
-
ファイルを一気に読まずに、1行ずつ読むように変えるのがいいかと思います。
|
3
|
+
ファイルを一気に読まずに、1行ずつ読むように変えるのがいいかと思います。
|
4
|
+
|
5
|
+
#サンプル追記
|
6
|
+
3ファイルを読んで、横につないで表示する。
|
7
|
+
```Ruby
|
8
|
+
fx = open("ファイル名X")
|
9
|
+
fy = open("ファイル名Y")
|
10
|
+
fz = open("ファイル名Z")
|
11
|
+
|
12
|
+
# ヘッダだけ特別処理をする場合
|
13
|
+
head_x = fx.gets(chomp: true)
|
14
|
+
head_y = fy.gets(chomp: true)
|
15
|
+
head_z = fz.gets(chomp: true)
|
16
|
+
|
17
|
+
puts "ヘッダは #{head_x},#{head_y},#{head_z}"
|
18
|
+
|
19
|
+
while date_x = fx.gets(chomp: true) and
|
20
|
+
date_y = fy.gets(chomp: true) and
|
21
|
+
date_z = fz.gets(chomp: true)
|
22
|
+
puts "#{data_x},#{data_y},#{data_z}"
|
23
|
+
end
|
24
|
+
fx.close
|
25
|
+
fy.close
|
26
|
+
fz.close
|
27
|
+
```
|
28
|
+
|
29
|
+
普通は、`open`にはブロックを与えますが、わかりやすくするために単独で使っています。
|