Linuxには、プログラムが生成するデータ量を計算できるプログラムがありますか?
たとえば、MySQLデータベースのバックアップを取りたい場合、通常は
mysqldump > dumpfile.sql
代わりに、リダイレクトしたい/dev/null
が、どのくらいのディスクスペースが使用されるかを計算したい。
mysqldump | fancy_space_calc_program
出力:
123456789 Bytes would have been used
注、MySQLバックアップは単なる例です。事前にサイズを見積もる方法をよく知っているので、それについてはコメントしないでください。
1
本当に作れるとは思いません。特定のケースではありますが、一部のアプリがサーバーを呼び出してそこからデータをダウンロードするかどうかを推定する方法-外国のアプリでそのようなことを推定することはできません。したがって、これはアプリごとになります-MYSQLについてすでに知っていることを書いているように-説明はありませんが、他のアプリ-アプリごとに、一般的なツールはそのような予測を正しく行うことができません。
—
ドラコ
推定を行うには、プログラムを実際に実行し、安全な場所に送信されている間に出力を観察する必要があることを理解してください。これは、プログラムが他の何かに何らかの不可逆的な影響を与える場合、不可能になるため、意図しない副作用なしで一度だけ実行できます。もう1つの問題は、プログラムが変化する入力から出力を導出する場合、次の実行で別の(異なるサイズの)出力ファイルが作成されることです。最後になりましたが、ディスクスペース<>(出力のバイト数)。また、さまざまなファイルシステムでは、簿記のオーバーヘッドが異なります。
—
トニー
はい、私はそれをよく知っています。私にとってはまだ十分です。
—
fancyPants
@Drakoプログラムのテキスト出力を測定する一般的な方法があります。これはアプリごとである必要はありません(たとえば、受け入れられた答えを参照)。テキスト出力が後続の実行で確実に同一になるかどうかはアプリ固有ですが、それは一般的な方法で出力を測定することを妨げません。おそらく、OPと出力を測定しようとする他の人は、データが特定のアプリケーションにとって意味がある場合にのみそうするでしょう。
—
ジョンベントレー
@JonBentley私はあなたにそれを持てないと言ったことはありません、もっと注意深く読んでください:「私が書いたように、一般的な予測は正確でもなく、近くさえありません:)」そして今、実行後の私のアプリがプラグインのそれ自体の更新をチェックすることを想像してくださいなど、i-netからx個のデータをダウンロードして、hddに保存します。私のアプリについて何も知らない一般的なツールで事前に正確に測定する方法、それを実行した後にどれくらいのストレージが必要になるのですか?それでも、受け入れられた答えを使用して最善の推測を行うことができ、多くの場合、かなり正確です。
—
ドラコ