これはパフォーマンス コンピューティングの質問だと思います。私はCでプログラムを書いていますが、これは通常RAMに完全に保存できるよりもはるかに多くの出力を生成します。stdout
出力を;に単純に書き込むつもりです。そのため、画面に表示されるか、ファイルにリダイレクトされる可能性があります。問題は、RAM に格納されるデータに最適なバッファ サイズを選択する方法です。
出力データ自体は特に重要ではないので、ランダムな整数の大量のリストを生成しているとだけ言っておきましょう。
私は2つのスレッドを持つつもりです.1つはデータを生成してバッファに書き込み、もう1つはそのバッファをに書き込みますstdout
. このようにして、出力の次のバッファの生成を開始できますが、前のバッファはまだ に書き込まれていstdout
ます。
明確にするために、私の質問はmalloc()
、pthread_create()
などの関数の使用方法に関するものではありません。私の質問は、最適なバッファサイズのためにバイト数 (512、1024、1048576) を選択する方法に関するものであり、最高のパフォーマンスが得られますか?
理想的には、最適なバッファー サイズを動的に選択できる方法を見つけて、プログラムがその時点で実行されているハードウェアに合わせて調整できるようにしたいと考えています。この問題に対する答えを探してみましたが、バッファ サイズに関するいくつかのスレッドが見つかりましたが、特にこの問題に関連するものは見つかりませんでした。したがって、私はいくつかの異なる視点を得て、自分でできるよりも良いものを考え出すことができることを期待して、質問として投稿したかっただけです.