1 件の投稿を表示中 (合計 10 個)
  • 作成者
    投稿
  • #30220
    ssskyhigh
    参加者

    いつもお世話になっております。

    私は、「ファイルから検索」機能で、
    全体1GB、ファイル数9000ほどのtxtファイルが入ったフォルダ(サブフォルダ構造あり)を対象に、
    正規表現で様々な文字列を検索するということを高頻度でやっているのですが、
    現在の環境では、

    ①最初はとても時間がかかります(1~2分)。(CPU使用率は、1つのスレッドだけが90%くらいまで跳ね上がり、他はあまり動きません。)
    ②しかし、一度①の検索をすると、2回目からは、たとえ検索文字列を変えても、数秒で結果がでるようになります。(この時CPU使用率は、満遍なく分散しています。)
    しかし、しばらく時間をおくと、また①に戻ってしまうようです。

    使用パソコンのスペックはこのような感じです。
    Intel Core i7-6500U 2.50 GHz 2(4) コア
    RAM 8.00 GB
    64bit

    それで、実はこの度、少し高価なワークステーションの購入を検討しているのですが、
    ①の速度を最大限速めるためには、特にどのスペックを気にする必要があるのでしょうか?(理想は数秒以下)

    例えば、今検討している2つの候補のスペックは以下のようになっています。
    (候補A)
    Intel Xeon Silver 4214R 2.40 GHz 12(24) コア
    RAM 64GB
    M.2 SSD

    (候補B)
    Intel Xeon W-2245 3.90 GHz 8(16) コア
    RAM 64GB
    SSD

    ご面倒をおかけしまして恐縮ですが、
    このあたりの事にあまり詳しくなく、少しヒントを頂くことはできますでしょうか。
    よろしくお願い致します。

    #30221
    japelin
    参加者

    横から失礼します。

    ①検索時に「1つのスレッドだけが90%くらいまで跳ね上がり、他はあまり動きません。」ということですので、
    シングルスレッドで動いているものと考えられます。

    そうだとすると、コア数を増やすより、周波数の高いW-2245を選択するのがよろしいのではないかと思います。
    逆にマルチスレッドで動くものは、コア数の多い4214R を選択する、ということになると思いますが、
    W-2245でも8コアありますので、大抵の処理は十分高速にこなせるんじゃないでしょうか。

    さらに、データドライブ上のファイルを参照しているのであれば、こちらも速いほうがいいです。
    SSDとM.2だと速度に大きな違いがあるので、可能であればM.2を選んでおくといいのかな、と個人的には思います。
    (ネットワーク上のファイルであれば、LANを2.5GbEとか10GbEにするとか、保存先データドライブを高速なものに
    置き換える、という必要がありそうですが)

    ②の数秒以下、というのはキャッシュされた情報を参照しているために速いのだと思います。
    CPUキャッシュについてはどちらも同じ16.5MBですから余り変わらないかと思います。
    今ご使用のCPUのキャッシュは4MBのようですからかなり増えます。
    検索が数秒で終わる、という状況が多少は長く保てるのではないでしょうか。

    参考まで

    #30222
    ssskyhigh
    参加者

    >KawakamiTakahiro様

    ご教示頂き、どうもありがとうございます。

    >②の数秒以下、というのはキャッシュされた情報を参照しているために速いのだと思います。
    >CPUキャッシュについてはどちらも同じ16.5MBですから余り変わらないかと思います。
    >今ご使用のCPUのキャッシュは4MBのようですからかなり増えます。
    >検索が数秒で終わる、という状況が多少は長く保てるのではないでしょうか。
    なるほど、一時的情報が保存されるのは「CPUキャッシュ」なのですね。(RAMとかかと思ってました)

    ①の時シングルスレッドで動いているので、周波数の高い方を選ぶべきだろうか、という点は実は私も考えたのですが、
    一方で、現在のスペックでも②が数秒で終わるという状況があるため、
    「もしかして、時間がかかっているのはCPUが原因じゃなくてSSDからの読み込みか?ということは、気にするべきはむしろストレージの速度で、M.2の方を選ぶべきなのか?」
    という事を考えて、恥ずかしながら自分では確信が持てず、ご質問させて頂いた次第です。

    ①のスピードを直接的に左右する要素(現在のスペックで1~2分もかかってしまう原因)は、
    やはりストレージの読み込み速度なのでしょうか?

    #30223
    snow
    参加者

    こんにちは。

    EmEditorは新しいCPUほど効率が良くなると言えますし、何世代か違えばそれだけでも効果ありそうですが、
    シングルスレッド性能は確かに効きそうだと思います。

    うちでファイル検索をする場合、以前のマシンと今のマシンを比較するとこんな感じです。
    以前:AMD A10-7800 / RAM32GB / 3.5″ SATA3 HDD 20秒超?
    今:AMD Athlon 200GE / RAM16GB / M.2 NVMe SSD 10秒程度?
    ファイル数は半分くらい、日々更新しているファイル群ですが同期しているので内容は基本的に同一です。
    CPUの差以上に向上していると感じています。
    メモリ等も違いますので総合的な結果ですが、やはりストレージの違いが大きいのではと思っています。

    >一時的情報が保存されるのは「CPUキャッシュ」なのですね。(RAMとかかと思ってました)
    対象とするフォルダ内のファイル一覧を自分でキャッシュしているのではと思っています。
    特定のアプリが特定の用途にCPUキャッシュを占有、というのは違和感あるので。

    それから、こちらもちょっと気になったので…。
    >M.2 SSD
    >SSD
    ここは「M.2 NVMe SSD」と「2.5″ SATA SSD」でしょうね。
    M.2にはSATAとNVMeの2種類があり、前者は2.5″と大差ありませんので、老婆心ながら「NVMe」を確認されることをおすすめします。

    #30224
    ssskyhigh
    参加者

    > snow様
    いろいろと親切にご教示頂きまして、ありがとうございます。
    大変助かりました。お恥ずかしい限りです。

    お話をお伺いして、シングルスレッド性能ももちろん良いに越したことは無いが、
    やはり、私の場合も内蔵ストレージの速度の方をより重視すべきかな、という考えが強まりました。(EmEditorの検索以外にも、全般的に起動速度等がかなり速くなりそうですし)
    どうもありがとうございます。

    #30225
    japelin
    参加者

    snowさん
    M.2のご指摘ありがとうございました。

    ちょうど内蔵SSDを新しく追加したので参考までに以下を乗せておきます。

    M.2 NVMe SSD(1TB)と2.5インチ SATA(2TB)とのディスクREAD WRITE比較
    (CPU:Ryzen5 pro 3400GE、メモリ32GB)
    https://imgur.com/a/OV3qg7k

    EmEditorでの検索結果(NVMeと2.5’SATAの結果)
    検索対象:1.2GB、ファイル数7000程度(EmEditorの自動保存とバックアップのフォルダ)
    1回目:拡張子を限定してキーワード検索:13秒と11秒
    2回目:拡張子*.*、キーワード変更して検索:66秒と69秒
    ほとんど誤差程度の違いしかありませんでした。

    CPUパワーの方が大きいのかなぁ…もっと違いが出ると思ってました。

    一方、Core i7 8550U+M.2 SSD256GB+メモリ20GBの環境もあるのでこちらも試しました。(READ WRITE3枚目)
    上記で60秒オーバーの検索がこちらでは85秒でした。
    CPUのベンチマーク自体は8550Uの方が上なのに遅い、というのは、やっぱりSSDの差が大きいのかもしれません。

    #30226
    ssskyhigh
    参加者

    >KawakamiTakahiro様

    貴重な追加情報をどうもありがとうございます。
    「1回目」より「2回目」の方が大幅に時間がかかっていますが、
    これは数字が逆になっているという事でよろしいでしょうか?

    この件、なかなかスペックから予測が難しいものなんですね。
    どうもありがとうございます。

    #30227
    japelin
    参加者

    これはあまりに時間が短すぎたので、検索範囲を拡大しようと思って*.txt→*.*に変更し、再度別のキーワードで検索したため、時間が長くなっています。
    紛らわしくてすみません。

    #30228
    snow
    参加者

    1パーツだとそれほど差は出ないのですね…私ももう少し出るものかと。
    うちはCPU・ストレージに加えてマザーもメモリも数世代違うので、トータルなのでしょうね。
    ※今のPCで10秒「程度」は少々甘すぎでした。13〜15秒といったところでしょうか。

    なお、前のPCにはグラフィックボードを積んでいますが(Photoshop用のため)、grepには影響ないと思います。

    #30230
    ssskyhigh
    参加者

    >KawakamiTakahiro様, snow様

    なるほど、拡張子*.* の件、理解できました。すみません。
    いろいろと実験して頂きまして、ありがとうございます。
    大変参考になります。

1 件の投稿を表示中 (合計 10 個)
  • このトピックに返信するにはログインしてください。