忍者ブログ
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
プロフィール
HN:
[-_-;] (みかん)
性別:
男性
趣味:
プログラミング、XOPS
自己紹介:
中部地方在住です。
最新コメント
[11/30 NONAME]
[11/22 NONAME]
[09/24 NONAME]
[06/10 NONAME]
[01/29 NONAME]
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
Prev Month123456789101112131415161718192021222324252627282930Next Month
基礎をおろそかにするべきではない
毎度のように話題にしているXopsAddonCreatorにも引っ掛かってくる っというより出だしは
そのままだが、XopsAddonCreatorシステムの外部データ(設定ファイルなど)は、ポイント
エディタ(XPE+)と同様に、INIファイルを採用している。
自分の中で使用実績が積んであり、中身も読みやすく編集もしやすい、Windowsの標準フォー
マットであるため読み書きするAPIも用意されている ということもあって、個人的に好きな
ファイル形式の1つである。

ただし、この標準APIのGetPrivateProfileInt()関数とWritePrivateProfileSection()関数には
最大の弱点がある。動作速度の重さだ。
これらの関数には毎度ファイル名を指定する必要があるのだが、これは毎回ファイルを開き
直していることを意味する。高速なストレージ環境だと問題ないが、古めかしいHDD上などで
かなりの数の項目数を読み込ませる場合は、致命的なほど重い。
XopsAddonCreatorも使用環境によっては起動時間の大部分を、言語ファイルとXOPSの
パラメーター設定ファイルの読み込みに要す場合もある。

開発の途中からある程度覚悟はしていたが、INIファイルの読み込み関数をフルスクラッチで
自作してしまった。 書き込み機能に関しては、ソフトウェア上でオプション設定とプリセットの
新規登録くらいにしか使っておらず、しかも項目数が少ないので効果がないと判断し作って
いない。
簡単なベンチマークを使って測定すると、手元の自分の環境で3秒近く掛かっていた読み込み
が、わずか0.01秒強で終わるようになった。当社比で300倍である。まさしく「爆速」。
 (決してこの話を主題にしたいわけではないで、詳細は割愛する)

話を本題に進める。

この自作したINIファイルの読み込み関数は、完全に自分オリジナルのアルゴリズムである。
中身はC言語による文字列操作の塊であるが、恥ずかしながら7月12日に話した通りこの
ソフトウェアの開発でここまでC/C++をやりこんでなかったら作れなかったと思う。
例えDirectXで3Dゲームを作っていても、ポインタとか文字列操作が怪しかった前の自分だと
作り上げることができなかったか、たとえ形になってもバグだらけだったと思う。
XopsAddonCreatorの開発を通して、改めてC/C++をやり直すことができて本当に良かっ
たと感じている。

基礎固めがここまで大切だったと実感したのは久しぶりだ。改めてこの時を思い出した。
効果が出るのが何年も先の話だったりするが、その何年も先には必要になるものである。
一歩踏み込んだ応用課題に取り組むには避けて通れない。
自分の独学スタイルは基礎をおろそかにしてしまうことが多い気がするが、今後はその曖昧
な知識を見つけて潰しながら(勉強し直しながら)、基礎固めをしていこうと思う。
category : 管理人の独り言 comment [2]
PR
COMMENTS
【本文以外は任意項目です】
SUBJECT(タイトル)
NAME(お名前)
MAIL(メールアドレス)
HOME(サイトURL)
COMMENT(本文)
PASS(削除パスワード)
Secret?(管理者へのみ表示)

※スパム防止のため「Hello!」「website」「ブランド」「みかんの戦闘ブログ」
「http」などの一部キーワードを禁止しています。ご了承ください。

無題 2013.08.18 Sun 09:41 EDIT
XopsAddonCreatorっていつ公開予定ですか?
from NONAME
ご存知かと思いますが、今まで公開時期に関しては「未定」という発表を貫いてきました。
次回記事にて公開時期について述べたいと思います。
from MASTER 2013.08.19 Mon 20:02
無題 2013.08.20 Tue 13:24 EDIT
教えてくれてありがとうございます。
楽しみに待ってます!
from NONAME

※過去のブログ記事は 原則として編集・修正していません。
 各記事の内容は投稿時のものであり、現在では異なる場合があります。
 最新の情報は、関係する内容について書かれた 最新の記事をご覧ください。

TOP