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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.83272 の関連記事表示

<< 0 >>
■83272  Re[2]: 大量のテキストファイルをマルチスレッドで高速に読み込む方法
□投稿者/ 金尾 -(2017/03/16(Thu) 09:39:54)
    Azuleanさん

    > 配列の中の文字数を調べてみていって、何文字くらいになっているか、数量を適当に量ってください。
    もちろん数量のはかり方は分かるのですが
    そのはかった数量をどのようにして共有したら良いのか分からないのですが
    Split関数では生成した配列をそのままコピーされますので
    前回使用した配列のサイズなどは流用できないと思うのですが
    どのようにすれば良いですか?

    魔界の仮面弁士さん

    > 何故 ReadLine を使わない方法に変更されたのでしょうか?

    これは
    魔界の仮面弁士さん自身も仰っているように
    > しかし同一の物理ドライブ上にある場合は、マルチスレッドにすることで、
    > むしろ遅くなってしまう可能性が高そうです。

    これが起きるためです。
    SSDだとそれほど違いはないですがHDDでReadlineのコードをマルチスレッド化すると
    3倍くらい速度が落ちる結果が得られました。
    ストレージからデータをメモリに読み込む部分だけは
    シングルスレッドにしておき、
    読み込んだデータをストリング配列にする部分だけをマルチスレッド化しないと
    逆に速度が低下してしまいます。

    > の一括読み取りなら File.ReadAllBytes の方がスマートに書けそうですし
    実際にはファイルの全てを読み込む必要はなく、後半の8割程度のみが必要なためです
    File.ReadAllBytes だと、ファイルの一部のみを読み込むことができません。


    ニートプログラマさん

    > がある内容なので注目しています。えっとまずは
    > 本当にCPUを100%使えるのかを確認したらいかが
    > でしょう??


    マルチスレッドはこれまでに何度も作成していますので
    CPU使用率が100%になるのは確認でてきます


記事No.83253 のレス /過去ログ142より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -