- - PR -
PCを早くするには
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-03-18 15:07
はじめまして、ほむらといいます。
よろしくお願いします。 -------- 最近、SCSIのHDDを導入する関係(見事に撃沈されました^^;;;)で 色々と勉強する機会があったのですが 思ったことはCPUやディスクの速度で早くするよりもソフト方面で内部的な 最適化の方が重要なのかなと思ってしまいました。 (まぁ、64bitPCIとかPCI-Xとかは別かと思いますが・・・) 現在のマシンは自作なのですが IAAの最新版をいれて、ページファイルの固定とvcacheの制限程度しかしてないです。 そこで、ソフト的に早くする方法としてお勧めのものがあれば 紹介していただけるとうれしいです。 | ||||||||||||
|
投稿日時: 2003-03-19 15:42
ソフト的に速くするというと、
プログラムを作るときにはアルゴリズムの洗練化が一番効果ありそうですが……。 OSの設定でとなると、どんなもんなんでしょうねえ。 またOSにもよりけりですが、FreeBSDやLinux、Windows 2000あたりだと、メモリを増やすのが一番簡単に体感速度を上げられると思います。 だいたい、今のPCだとハードディスクの読み書きがボトルネックではないかと。 メモリを増やすとキャッシュでヒットする率も上がりますし、 スワップの発生も少なくなってハードディスクの読み書きが減るのではないでしょうか。 メモリはハードウェアなので、ちょっと趣旨とは外れますが。 | ||||||||||||
|
投稿日時: 2003-03-20 09:47
ども、ほむらです。
----- >プログラムを作るときにはアルゴリズムの洗練化が一番効果ありそうですが……。 ですね。DOSの時代はアセンブリコードを修正したりとかインラインアセンブリを 使っていました。(Windowsは難しくてアセンブリなんて打てませんが・・・・^^;;;) >OSの設定でとなると、どんなもんなんでしょうねえ。 スワップファイルを別HDDに入れるといいって聞いたこともありますね。。。 2000のvcahceって制限できないんですよね〜。cacheが100MB超えてたりすると cacheの意味ないんじゃないかとちょっと心配です。 >だいたい、今のPCだとハードディスクの読み書きがボトルネックではないかと。 僕もそう思っていたんですが、調べてみるとIDE-RAIDというやつを 80Gプラッタ程度のものでストライピングをしてあげると R/Wともに100MB超いってしまうようです。 32bit-PCIバスの転送速度が120MB程度だと考えるとハードディスクによるボトルネックは 人間にはごく小さいものかなと。。。 (個人で使用するときにはディスクアクセスってあまりしませんし…) # やっぱりメモリ周りになるんですかねぇ。 # XPとか2000くらいになるとグラフィックボードの速度も関係してきそうですけど。。。 # GeForce2 Proと GeForce4 Ti4200 が2D性能ほとんど一緒なのにはショックでした。(涙) | ||||||||||||
|
投稿日時: 2003-03-20 10:04
ほむらさんこんにちは。
> ソフト的に早くする方法としてお勧めのものがあれば 軽いOSを使う... 速くするといっても目的によって違うと思いますが... 単に技術的に最高速を追求するというなら、いろいろ 実際に試してみるのがいいかもしれませんね。 WinXPならLunaをOFFにするとかそういう設定がどこかで変更できたと思います。 | ||||||||||||
|
投稿日時: 2003-03-20 12:50
ソフトウェア的、設定的にはその手もアリそうですね。ただ、スワップが起きないくらいのメモリを載せた方が速いです。
それでも、メインメモリやキャッシュは桁違いに速いわけでして……。全部オンメモリでもっていれば、どんなハードディスクよりも速いと思いますけどね。
2Dに関して言えば、ATIのMach 64あたりで体感的には飽和しています。これよりも世代の新しいグラフィックチップは、3Dの強化を目指しているのでは? | ||||||||||||
|
投稿日時: 2003-03-20 18:07
ほむらです。
---- なか-chanさんへ >軽いOSを使う... 同感です。 とりあえず今の環境としては、2000で普通に動かして ゲームみたいに重いもの系は98SEを使っています。 これがどの程度違うのかはわかりませんが、遅いCPUのときに2000にあげたら 表示がかくかくになってしまったのを覚えています。 # Windowsは NT6.0以上にあがるまでは2000でいこうかなと思っています。 秋山さんへ やっぱりスワップファイルって使用しない設定のほうがいいのですか? SCSIを買いに行った時になぜかメモリまで買ってしまっていて今1Gあるので スワップファイル無しの設定でも動くと思うのですが・・・・ (現在はスワップファイル50MB固定、vcache 0-60MBに設定してあります) | ||||||||||||
|
投稿日時: 2003-03-24 16:33
定量的な測定をしたわけでもないですし、OSにもよるので簡単には言えないです。ただ「スワップファイルを設定しない」ではなく「スワップが発生しない」のが重要かと。スワップファイルを設定しても、メインメモリが足らなくなるまではスワップが起きないはずなので。ちなみに、256MBのメインメモリでWindows 2000を使っていたころ、何の拍子か仮想メモリを0に設定してしまったようで、しばらく気がつかずに使っていました。別段、何の不自由もなく使えていましたけれど。 でも最近はプログラムが大型化しているので、複数のプログラムを動かしているとメインメモリが足りなくなります。するとスワップが発生して体感速度が目に見えて遅くなる、という状況が毎日のように起きています。もはや384MBのメモリでは足りないのか……。 もともとスワップという技術はメインメモリが大変高価で貴重だった時代に、遅くてもいいからメインメモリがたくさんあるかのような使い勝手が欲しい、ということで開発されたのだと認識しています。メインメモリが足りなくなると、とりあえず使っていなさそうなところをハードディスクに書き出して、そこを使う。で、ハードディスクに書き出しておいた部分か必要になると、メインメモリに読み込み直す。もちろんこの時メインメモリが足りていないことの方が多いでしょうから、その時点で使ってなさそうな部分をまたハードディスクに書き出すわけです。 今のハードディスクが実質どのくらいの速度で読み書きできるのかを気にしたことがありませんが、平均シークタイムが9ミリ秒だとしましょう。メインメモリはクロック266MHzあたりだとすると単純計算で1クロック3.7ナノ秒。ランダムアクセスだと考えると、ざっと10の6乗くらいの速度差ですね。まあバースト転送とかCAS遅延とか、シーケンシャルアクセスなんかがありますから実際はもう少し上下するでしょうけれど、圧倒的に速度が違うと思えますね。 不勉強なのでWindows 2000とかXPはどうなっているのか知らないのですが、FreeBSDやLinuxだとスワップとハードディスクキャッシュが統合されているそうです。キャッシュの効果は2度目にプログラムを起動する時からですが、メインメモリを載せれば載せただけ、たとえスワップが発生しなくてもキャッシュとしての効果を期待できるというわけです。 | ||||||||||||
|
投稿日時: 2003-03-25 09:54
おはようございます。(?)ほむらです。
---- 秋山さんへ: Windows2000の方はページファイル無しにしました。 基本的に開発とかしかするつもりはないので大丈夫かなと。。。 ただ、98SEの方はスワップファイル無しの設定にしたら動かなくなってしまいました。 サイズを指定してあげると動きましたが。。。このあたり搭載メモリに関係しているのかな? (98SEで512MB以上のメモリは無謀みたいですね^^;;;;) 98SEの場合はキャッシュサイズを指定しないとどんどん大きくなってしまうので キャッシュミスが不安材料ですね。。 (あっでも最近の機器は速いからミスしてもそんなに痛くない?) (キャッシュミス=ハードディスクのリード時間の増加) メモリが足りなくなると切り取ってくれるみたいではありますけど
もしかしたらメインメモリが足りないのではなくて システムリソースが足りなくなってしまっているのでは? 384MBもあれば2000なら十分いける気もしますし。。。。 複数起動するアプリと数にもよるのでしょうけど
キャッシュとページファイルが一緒なんですか。いいですね。 それなら、キャッシュとしてかなり期待できる感じがします。 今、昔使っていたPC98にFreeBSDを入れようかなと検討中なんですよね〜。 ただ、今までMS-DOS(ファイラー付)くらいしか使ったことがないのでちょっと不安だったり パッチ当てとかが難しそうで。。。。 |
1