- 作成者投稿
- 2021年10月7日 1:33 pm #30220ssskyhigh参加者
いつもお世話になっております。
私は、「ファイルから検索」機能で、
全体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ご面倒をおかけしまして恐縮ですが、
このあたりの事にあまり詳しくなく、少しヒントを頂くことはできますでしょうか。
よろしくお願い致します。2021年10月8日 1:31 am #30221japelin参加者横から失礼します。
①検索時に「1つのスレッドだけが90%くらいまで跳ね上がり、他はあまり動きません。」ということですので、
シングルスレッドで動いているものと考えられます。そうだとすると、コア数を増やすより、周波数の高いW-2245を選択するのがよろしいのではないかと思います。
逆にマルチスレッドで動くものは、コア数の多い4214R を選択する、ということになると思いますが、
W-2245でも8コアありますので、大抵の処理は十分高速にこなせるんじゃないでしょうか。さらに、データドライブ上のファイルを参照しているのであれば、こちらも速いほうがいいです。
SSDとM.2だと速度に大きな違いがあるので、可能であればM.2を選んでおくといいのかな、と個人的には思います。
(ネットワーク上のファイルであれば、LANを2.5GbEとか10GbEにするとか、保存先データドライブを高速なものに
置き換える、という必要がありそうですが)②の数秒以下、というのはキャッシュされた情報を参照しているために速いのだと思います。
CPUキャッシュについてはどちらも同じ16.5MBですから余り変わらないかと思います。
今ご使用のCPUのキャッシュは4MBのようですからかなり増えます。
検索が数秒で終わる、という状況が多少は長く保てるのではないでしょうか。参考まで
2021年10月8日 7:39 am #30222ssskyhigh参加者>KawakamiTakahiro様
ご教示頂き、どうもありがとうございます。
>②の数秒以下、というのはキャッシュされた情報を参照しているために速いのだと思います。
>CPUキャッシュについてはどちらも同じ16.5MBですから余り変わらないかと思います。
>今ご使用のCPUのキャッシュは4MBのようですからかなり増えます。
>検索が数秒で終わる、という状況が多少は長く保てるのではないでしょうか。
なるほど、一時的情報が保存されるのは「CPUキャッシュ」なのですね。(RAMとかかと思ってました)①の時シングルスレッドで動いているので、周波数の高い方を選ぶべきだろうか、という点は実は私も考えたのですが、
一方で、現在のスペックでも②が数秒で終わるという状況があるため、
「もしかして、時間がかかっているのはCPUが原因じゃなくてSSDからの読み込みか?ということは、気にするべきはむしろストレージの速度で、M.2の方を選ぶべきなのか?」
という事を考えて、恥ずかしながら自分では確信が持てず、ご質問させて頂いた次第です。①のスピードを直接的に左右する要素(現在のスペックで1~2分もかかってしまう原因)は、
やはりストレージの読み込み速度なのでしょうか?2021年10月8日 9:43 am #30223snow参加者こんにちは。
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」を確認されることをおすすめします。2021年10月8日 6:59 pm #30224ssskyhigh参加者> snow様
いろいろと親切にご教示頂きまして、ありがとうございます。
大変助かりました。お恥ずかしい限りです。お話をお伺いして、シングルスレッド性能ももちろん良いに越したことは無いが、
やはり、私の場合も内蔵ストレージの速度の方をより重視すべきかな、という考えが強まりました。(EmEditorの検索以外にも、全般的に起動速度等がかなり速くなりそうですし)
どうもありがとうございます。2021年10月13日 12:03 am #30225japelin参加者snowさん
M.2のご指摘ありがとうございました。ちょうど内蔵SSDを新しく追加したので参考までに以下を乗せておきます。
M.2 NVMe SSD(1TB)と2.5インチ SATA(2TB)とのディスクREAD WRITE比較
(CPU:Ryzen5 pro 3400GE、メモリ32GB)
https://imgur.com/a/OV3qg7kEmEditorでの検索結果(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の差が大きいのかもしれません。2021年10月13日 3:57 pm #30226ssskyhigh参加者>KawakamiTakahiro様
貴重な追加情報をどうもありがとうございます。
「1回目」より「2回目」の方が大幅に時間がかかっていますが、
これは数字が逆になっているという事でよろしいでしょうか?この件、なかなかスペックから予測が難しいものなんですね。
どうもありがとうございます。2021年10月13日 4:04 pm #30227japelin参加者これはあまりに時間が短すぎたので、検索範囲を拡大しようと思って*.txt→*.*に変更し、再度別のキーワードで検索したため、時間が長くなっています。
紛らわしくてすみません。2021年10月13日 8:18 pm #30228snow参加者1パーツだとそれほど差は出ないのですね…私ももう少し出るものかと。
うちはCPU・ストレージに加えてマザーもメモリも数世代違うので、トータルなのでしょうね。
※今のPCで10秒「程度」は少々甘すぎでした。13〜15秒といったところでしょうか。なお、前のPCにはグラフィックボードを積んでいますが(Photoshop用のため)、grepには影響ないと思います。
2021年10月14日 8:09 am #30230ssskyhigh参加者>KawakamiTakahiro様, snow様
なるほど、拡張子*.* の件、理解できました。すみません。
いろいろと実験して頂きまして、ありがとうございます。
大変参考になります。2021年10月31日 1:18 am #30263Yutaka Emuraキーマスターいつもお世話になっております。
ファイルから検索の①と②の違いというのは、VERSION 20.1 の新機能 のテスト結果でも書いている通り、Windows のキャッシュのメカニズム によります。「CPUキャッシュ」には1GBものファイルは保持できないです。そして、①の速度は、ストレージの速度に大きく依存します。しかし、snowさんの書かれている通り、CPUの速度もある程度依存するし、個々のパーツだけでなくトータルなのだと思います。ご参考にいただければ幸いです。
よろしくお願い致します。
2021年10月31日 10:43 am #30265snow参加者自分でキャッシュ保持するのではなくWindows自体のキャッシュによるのですね。
ありがとうございます。せっかくなのでここに書かせていただきます。
実は今年初めまでの1年か1年半ほど、EmEditor以外の選択肢を模索していました(EmEditor v3に至る前にも大量に試用しました)。
復帰させていただいた最大の理由がgrep速度です。
操作等は慣れれば良いと言えますが、速度はどうしようもなく。バイナリファイルのみ10万ほどあるサブディレクトリがあり、EmEditorでは気にならなかったのですが、他の選択肢では(スキップしているはずなのに)大きく速度に影響しました。
そこでこのサブディレクトリを移動して全体5,000程度にしたのですが、それでも同等の速度にはなりませんでした。
他のディレクトリにもバイナリファイルが結構あるので、そこで差が付くのだと思います。
我慢し切れず再び使わせていただくことになった次第です。2021年10月31日 11:45 am #30266ssskyhigh参加者江村様
お世話になっております。
貴重なご教示をどうもありがとうございます。
これでより確信をもってスペックを選択できます。私も、昔いろいろなエディタを試した事がありましたが、
私にとって重要なGREP検索の使い勝手という点で、EmEditor一択となりました。
検索窓を含め表示フォントを自由に設定できる点、便利なファイルジャンプ機能、かなり長い文字列にも対応可能な正規表現などが決め手でした。スクリプトマクロの使い方等も覚え始めたら、研究効率は格段に向上し、もう完全に手放せません。
一般的にコンピュータリテラシーがとても低い分野なのですが、仕事仲間の間でも少し使う人は、やっぱり EmEditor だということで一致してます。
今後ともどうぞよろしくお願いします。 - 作成者投稿
- このトピックに返信するにはログインしてください。