Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
Windows7での再描画の遅さがストレスで、なかなかXPから移行できません。Windows7でXPなみの再描画スピードにする方法があればご教授願います。参考までに、線本数24,000本、円1,500、文字700、点300くらいのデータで、コンマ数秒ですが明らかに描画がXPよりも遅くなってます。コンマ数秒でも頻繁に再描画を繰り返す図面屋としてはストレスを感じます。同じデータがXPではほとんどストレスなく再描画できます。
私のPC構成:
CPU:i7-2600K、GPU:Radeon-HD-6450、OS:同じマシンにそれぞれ別のHDDにてwin7pro64bit、winXPsp3が入っています。何か良い対応策があれば宜しくお願いいたします。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=42867;id=004
無いです。
高速なCPUにすれば速く描画されると思いますが、同じマシンに入れているXpのほうもそれなりに更に高速に描画されると思いますので、同じマシンで動かす以上、Windows7は、WindowsXpよりも高速に描画させる事は出来ないと思います。Xpの方の速度を落としたいのなら、超ふるーいVGAカードを入れるって手法はあると思いますが、そんなことをしてもばかばかしいので。
Jw_cadは WindowsGDIで描画されますが、WindowsXpまではVGAカードの専用機能で描画されますから高速描画できるのですが、WindowsVista/7では、VGAカードの専用機能は使用されず、CPUがエミュレーションを行って描画されるようになっています(それでも Vistaより7の方がマシだったと思いますが)。ですので、VGAカードを高速なものに入れ替えるというのも出来ません。
Aeroをオフにすれば、10%~20%は高速になる、らしい、という話は、雑誌等の記事でもありますし、私も試した事はありますが、正直、WindowsVista/7 で Aeroをオフにすると Vista/7を使っている意味が全くありませんので、そんなことをする位なら最初から Xp にすればいいと思います。
あとは、Jw_cad が、Direct2D対応 または DirectX対応となれば、VGAカードの機能を利用した2Dグラフィックス描画を行う事が出来るようになりますので、高速にすることは出来るんじゃないかと思います。私も Delphi2010での Direct2D テストで高速描画が出来るのは確認済みです。但し、アンチエイリアスをオフにするという事が、must be です。アンチエイリアスを行うと、綺麗に描けますが、かなり遅くなります。線種を指定すると地獄の遅さです。実験済み。現在の WindowsGDIよりも更に遅いです。
Delphiですが、Direct2D はそんなに難しくありませんでしたし、元々が Visual C++でのプログラミングがターゲットでしょうし、マイクロソフト社のサイトに色々と説明がありますので、作ろうと思えば そんなに時間は掛からないような気はします。Direct2Dが使えない環境(Vista SP1&専用パッチ無し、Windows2000/Xp)の場合には従来通り、WindowsGDIで描画させるようにすればいいと思います。この判定は簡単です。
ただ、アンチエイリアスなしのDirect2D描画の絵は、あまり、綺麗じゃないので、利用者がそれで納得するかどうか、というのは、あるかもしれないんですけれども。まぁ、描画速度と どちらを取るか?って話になるかもしれませんけれども。
あ~それと、
Visual C++ランタイムを入れたら速くなるかも?
みたいな話ですが、
それは基本的に、無い、と思いますね。
もとより、Jw_cad は、Visual C++ ラインタイムを必要としないんだし。入れても実害は無いですが、入れても入れなくても関係無いと思いますね。Ver.7.11前期バージョンの絡みで、もう入れてしまった人も居ると思いますけれども。
それと、
JWW7をインストールする前に、わたしは、Microsoft Visual C++
をインストールした記憶があります。
とありますが、
VC++本体と、VC++ランタイムライブラリは、別物なので、
ランタイムライブラリなら、ランタイムライブラリ、と書かれた方がいいと思います。なんでそこで、プログラム開発ソフトをインストールしないといけないのだろう?みたいな感じになってしまいますので。それに、VC++は、有料のソフトですから。(※Expressは無料だけど)
| このブログのURL
|この記事のURL