2016-08-31 6 views
0

私は、ローカルのMongoDBに数百万のレコードを挿入しています。bashで大量のデータを印刷すると処理速度に影響しますか?

ロギングを無効にする方法はわかりませんでしたが、端末は膨大なデータを出力しています。

これは実際に挿入が遅くなるのですか、実際に何が行われているのか、端末が遅れていますか?

+1

端末デバイスは比較的遅く、ブロックされます。遅くなると挿入するチャンスがあります。 –

+1

しかし、遅い部分は端末を更新しています。端末に十分なバッファがある場合、スクロールすると表示される出力は、しばらく前に実行されたコマンドによって生成されました。スクリプトが完了すると、スクリプトの出力がスクロールを終了するまでに数分かかることがあります。このようなスクリプトを 'tmux'で実行し、Control-Cを押してから、バッファリングされた出力が完了するのを待つよりもはるかに高速であることに気づくでしょう。 – chepner

答えて

1

ロギングが遅くなります。新しいビデオカードを購入したり、出力を消音することができます。

insertscriptの出力が多い場合は、stdoutまたはstderrになります。 いずれかのファイルをファイル(または/ dev/null)にリダイレクトすることができます。あなたがリダイレクトすると、stdoutがデフォルトです(値1を持つ)とstderrは、あなたがまた&で別の現在のターゲットにリダイレクトすることができます番号2

insertscript > insert.out 2> insert.err 
# or 
insertscript 1> insert.out 2> insert.err 

です:

# Stderr also to insert.out 
insertscript > insert.out 2>&1 
# or 
# stderr to your console 
insertscript 2>&1 > insert.out 

なぜありません最初にリダイレクトを再生しますか?

echo "Normal output" >/dev/null 
echo "Normal output" 2>/dev/null 
rm not_existing_file >/dev/null 
rm not_existing_file 2>/dev/null 
# 
echo "Normal output" >/dev/null 2>&1 
echo "Normal output" 2>&1 > /dev/null 
rm not_existing_file >/dev/null 2>&1 
rm not_existing_file 2>&1 2>/dev/null 
関連する問題