C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■83395 / 1階層)  巨大なテキストファイルを高速で出力する方法
□投稿者/ shu (983回)-(2017/03/20(Mon) 23:32:57)
No83387 (バカボドン さん) に返信

> ファイルサイズが数百MByte程度になるので
> 一度に全てをバイト配列にして最後に出力するというのは避けたいです。
この考え方が一番速く出来る可能性が高いと思います。
一度に出来ないならいくつかにわければよいのではないでしょうか?
例えば10MB単位で書くとか。

10MB×2のバイト配列を用意して
(1) 1つめのバイト配列に書き込む
(2) 1つめのバイト配列をファイルに書き込む
(3) 2つめのバイト配列に書き込む((2)とスレッドを分けることが可能)
(4) 2つめのバイト配列をファイルに書き込む((2)を処理したスレッドが(3)での処理が終了していることを確認して書き込む)
同様に繰り返す

とすれば2つのスレッドで多少は速度を稼げそうな気もします。同期をうまくとる必要があります。
用意出来る配列の本数が多ければ配列への書き込み自体は並列度が上がりますが書き込み待ち制御が大変にはなるでしょう。

また今回の処理がSingle値の文字列化であり配列に収まるデータ数が可変になってしまうので配列の大きさを固定化しないで
データ数で分けたほうがやりやすいかもしれません。

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←巨大なテキストファイルを高速で出力する方法 /バカボドン 返信無し
 
上記関連ツリー

巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/20(Mon) 16:51) #83387
Re[1]: 巨大なテキストファイルを高速で出力する方法 / Azulean (17/03/20(Mon) 20:44) #83390
│└ Re[2]: 巨大なテキストファイルを高速で出力する方法 / なちゃ (17/03/20(Mon) 23:01) #83391
巨大なテキストファイルを高速で出力する方法 / shu (17/03/20(Mon) 23:32) #83395 ←Now
    └ Re[3]: 巨大なテキストファイルを高速で出力する方法 / なちゃ (17/03/20(Mon) 23:20) #83393
      └ Re[4]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/20(Mon) 23:31) #83394
        └ Re[5]: 巨大なテキストファイルを高速で出力する方法 / なちゃ (17/03/21(Tue) 12:29) #83401
          └ Re[6]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/21(Tue) 13:19) #83402
            └ Re[7]: 巨大なテキストファイルを高速で出力する方法 / もりお (17/03/21(Tue) 20:47) #83403
              └ Re[8]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/21(Tue) 21:01) #83404
                └ Re[9]: 巨大なテキストファイルを高速で出力する方法 / もりお (17/03/21(Tue) 21:13) #83405
                  └ Re[10]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/21(Tue) 21:47) #83406
                    └ Re[11]: 巨大なテキストファイルを高速で出力する方法 / もりお (17/03/22(Wed) 01:29) #83408
                      └ Re[12]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/22(Wed) 09:22) #83410
                        └ Re[13]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/22(Wed) 09:30) #83412
                          └ Re[14]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/22(Wed) 09:41) #83413
                            └ Re[15]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/22(Wed) 10:18) #83414
                              └ Re[16]: 巨大なテキストファイルを高速で出力する方法 / PANG2 (17/03/22(Wed) 13:53) #83418
                                └ Re[17]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/22(Wed) 14:28) #83420
                                  └ Re[18]: 巨大なテキストファイルを高速で出力する方法 / なちゃ (17/03/22(Wed) 15:29) #83421
                                    └ Re[19]: 巨大なテキストファイルを高速で出力する方法 / バカボドン (17/03/23(Thu) 19:10) #83442 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信