33 個のデータポイントを持つ約 500 個のファイルのセットがあります。
次のgnuplot
スクリプトを使用してこれらのファイルをプロットしています
do for [i=1:477] {
reset
set label sprintf('Time=%03d s',i) at 0, 0.4
@png
infile = sprintf('%d/lineX2_U.xy',i)
outfile = sprintf('plot%03d.png',i)
print i," ",infile," ",outfile
set output outfile
set xlabel "y [m]"
set ylabel "u [m/s]"
set xrange [-1:1]
set yrange [0:1.2]
plot infile with line ls 1
}
このマクロを使用する場所
png="set terminal pngcairo size 1800,1800 crop enhanced font \"/usr/share/fonts/truetype/times.ttf,30\" dashlength 2; set termoption linewidth 3"
問題は、システムのメモリ使用量が、gnuplot
終了するまで時間とともに増加していることです。証拠:
> while true; do \grep MemFree /proc/meminfo ; sleep 10s; done;
MemFree: 9720956 kB
MemFree: 9121936 kB
MemFree: 8401072 kB
MemFree: 7682248 kB
MemFree: 6963356 kB
MemFree: 6219948 kB
MemFree: 5501612 kB
MemFree: 4758256 kB
MemFree: 4064564 kB
MemFree: 3346416 kB
MemFree: 2651620 kB
MemFree: 1933656 kB
MemFree: 1241644 kB
MemFree: 547836 kB
MemFree: 152200 kB
MemFree: 126396 kB
MemFree: 118232 kB
MemFree: 131612 kB
MemFree: 117760 kB
MemFree: 117936 kB
MemFree: 118368 kB
MemFree: 10934164 kB
MemFree: 10898460 kB
MemFree: 10863592 kB
MemFree: 10822712 kB
gnuplot
スクリプトの実行中に自由に使用できるメモリを監視しています。もちろん、メモリ不足は非常に望ましくありません。あり、なしreset
は変わらないようです。
いくつかのテストの後、端末のcrop
オプションを省略することで問題が解決されることがわかりました。pngcairo
最小限の生殖スクリプトは次のようになります。
set terminal png crop
do for [i=1:500] {
set output sprintf('plot%03d.png', i)
plot '+' using 1:(rand(0)) w l
}
端末のcrop
オプションが原因で発生するこのメモリの問題は、どのように解決できますか?pngcairo
注: gnuplot 4.6 を使用しています