忍者ブログ

RAPTのブログ

自サイトに書ききれなくなってしまったので、こちらに退避します。
ま、自サイトと異なり、ここではもっとフランクに行こうかと。

[PR]

2025/07/21(Mon)11:48

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

No.|CommentTrackback

最適化

2006/09/28(Thu)00:50

Donut RAPT/L/Q は未だに VC++6.0 で作成されています。VC++6.0 は Windows 2000 が発売される前に出たもので、かなり古い開発環境です。しかも、Standard 版を使っているため、最適化機能はありません。

そのため、拙作のソースを Professional 版で最適化付きでビルドするだけで、パフォーマンスの向上や、サイズの最小化を行うことも可能です。

Standard 版の制限は、最適化機能だけでなく、プロファイラが無い事もあげられます。通常の開発では、ある程度完成したら、プロファイリングを行ない、動作が遅い個所を調査し、改善を図るための目安とするものです。しかし、Donut ではこれがないため、基本的に全部手探りで行なっています。


では、どうやって Donut Q で高速化を図ることができたのか。
今まで、Donut RAPT/L では、作成当時の開発環境が Windows 98 であったこともあって、なるべくシステムリソースを消費しない作りにすることが美徳であるような時代でした。メモリを節約するため、地道な作業をやっていました。

しかし、この「地道な作業」というのは、作業効率上はあまり望ましくありませんでした。そこで、Donut Q では、メモリを潤沢に使うことで、今まである処理を1つずつ順番に処理していたのを、一気にまとめて処理するように変更するようにでき、結果として処理速度を大幅に向上できるようになりました。

また、プロファイラや最適化機能がない分は、カンとアタリとカタコトのアセンブラの知識で対処していました。もっとも、アセンブラと言ってもアセンブラコードを書けるという意味ではなく、コンパイラの翻訳結果を見て、最も処理コード数が少ない方法を選択するという地味な作業でした。

例えば、クラスのインスタンスのメンバ変数を参照するよりも、一度別の変数に値をコピーしてから、そのコピー後の変数を使ってループした方が速いだとか、INI 設定ファイルの読み書きは、従来の1行単位から1セクション単位に変更し、メモリ内で値の置き換えを行なうようにするだとか。


Donut は元々 .cpp ファイルは 1 つしかなく、すべてのコードはヘッダファイルに記載することになる上、構造が複雑になりすぎ、ちょっと気を抜くと依存関係が分かりにくくなるという構造上の欠点も開発を難航させている原因の1つになっています。

最近、会社の方の仕事もあって、VC++.NET でもコードを書けるようになりました。VC++.NET では最適化機能は標準で付属しているので、こちらでコードを書けるようになれば、成果物も作業効率も向上すると思います。が、当面は VC++6 での開発になりそうな気がするなぁ。。。

PR

No.10|Donut 関連Comment(0)Trackback

File Up BBS 復旧

2006/08/07(Mon)01:16

ここ1ヶ月ほど、500 Internal Server Error で使用できなかった File Up BBS が復旧しました。

実は、ちょうど1ヶ月位前に、機器不良にてサーバーを入れ替えてたらしく、その際に設定が変更されたようで、ファイルのパーミッションの変更ができない状態でした。

2週間以上経っても復旧しないため、サーバー管理者に連絡したのが、7/24の事。それまで、ファイルが多すぎるのかなーとか思ってファイルを消してみたりしていました。

それ以降、数日置きにパーミッションが変更できるか確認していたのですが、今日もそれをやってみたところ、パーミッションが変更できるようになっていました。

鯖缶よ、ありがとう!


ただ復旧するんじゃ面白くないから、折角なので、掲示板スクリプトも最新版に入れ替えることにしました。そして、UPLOAD して動作確認をしてみたところ、相変わらず 500 Internal Server Error のまま。何か間違えたかなと思って、オリジナルの UnSecure なスクリプトで動作確認。

・・・動作しない。もしかして、と思って、サーバの perl へのパスを変更してみると、動きました。そこで、試しに元の掲示板スクリプトのパスを変更したところ、アッサリ動作しました。orz
おそらく、サーバーを入換えた際、Apache の設定が一部変更されたのでしょう。

結果的に、File Up BBS のログも残っていたし、掲示板スクリプトも新調できたのでメデタシメデタシってところかな。

No.9|Donut 関連Comment(0)Trackback