まどかの 日記

[2004/09/20〜2004/09/26の日記]
[2004/09/27〜2004/10/03の日記]
[2004/10/04〜2004/10/10の日記]
[2004/10/11〜2004/10/17の日記]
[2004/10/18〜2004/10/24の日記]
[2004/10/25〜2004/10/31の日記]
[2004/11/01〜2004/11/07の日記]
[2004/11/08〜2004/11/14の日記]
[2004/11/15〜2004/11/21の日記]
[2004/11/22〜2004/11/28の日記]
[2004/11/29〜2004/12/05の日記]
[2004/12/06〜2004/12/12の日記]
[2004/12/13〜2004/12/19の日記]
[2004/12/20〜2004/12/26の日記]
[2004/12/27〜2005/01/02の日記]
↑過去3ヶ月くらいの日記はこちら↑

まどかは「P/ECE Hand Book」を応援しています



1183
2005/01/09()
 P/ECEネタ進まず
 今日はちょっと色々あって忙しかったので、今日のP/ECEネタは続きができず。
 でも、頭の中では色々と考えているので、微妙には進んでるかな?

 というわけで、今日はおしまいです。

 それでは、おやすみなさーい。

1182
2005/01/08()
 またちょっと高速化に成功!
 今日も相変わらずP/ECEネタでさらに高速化に挑戦です。

 昨日のさらなる神懸り的なヒラメキによって高速化した部分をまたちょっと見直し、微妙にですが今日も高速化に成功しました。

 これで、当初目標としていた動作速度にかなり近づき、まともに見れる画面になりました(^^
 今回の高速化により最高74msかかっていた処理が61msにまで速くなり、大満足です。
 
 一応目標の速度は66ms以下だったので、今日で目標達成ということになるかと思っていたのですが、実際は66msでも速度が足りなくて、まだまだ高速化する必要があるようです。
 さて、次はどのくらいまで早くできるのかな。高速化は結構大変だけど、かなり楽しくなってきました。

 というわけで、今日はここまで。
 それでは、おやすみなさーい。

1181
2005/01/07()
 神懸り第2弾
 今日も頭文字Dな仕事で、DLLを使ったプロセス間共有について、色々実験をしていました。
 DLLが管理している共有メモリを同時に2つのアプリから利用できるようにするのはなかなか大変そうですね。
 
 というわけで、今日も遅くまでその実験をやってて、その後P/ECEネタの続き(^^;
 前回の実験で、どうもある個所に来ると、1回のデコード処理に70ms前後かかるのが連続的に起こることが判り、これまで頑張って高速化したソースをさらに高速化させる必要があるのは判ったのですが、その高速化が容易ではありません。

 今までさんざん苦労して速くしたソースをさらに速くするなんて、かなり大変で、何度も何度もソースを読み返して、省けるところはないかとか、まとめられるところはないかとか探しているのですが、そんな個所は中々見つかりません。

 が、先日の神懸り的なヒラメキの時同様に、今日もなぜだか分かりませんが、急にインライン展開させている関数を複数個並べて書いているところは、インライン展開の指定じゃなくて、ソースをベタに書いて手動でインライン展開すればインライン関数内で毎回やっているローカル変数の定義やポインタへのアドレス計算をまとめて、演算数を減らすことができるんじゃないかというヒラメキが起こり、見事さらに高速化し、全ての回でスムーズに動くようになりました(^^ やったね。

 今思うと、そういう高速化の手法は、当たり前なのかもしれませんが、我ながら良く気付いたと思いました。
 というわけで、ようやく次のステップに進めます(^^
 それでは、おやすみなさーい。

1180
2005/01/06()
 なんかもう週末な気分
 今日は頭文字Dな仕事の続きで、色々と実験して調べたりしていました。
 で、今日もキリが良いところまでがんばったら遅くなってしまったので、P/ECEネタは微妙しか進まず。

 各回の処理の時間を調べてみたら、だいたい50ms前後で処理できているのに、ある場所だけ70ms以上かかる回が連続していることが判り、これがカクつく原因みたいです。

 一応原因は判ったのですが、それをどうやって高速化しようか、かなり悩みます。
 というわけで、今日はおしまい。
 それでは、おやすみなさーい。

1179
2005/01/05()
 なかなか進めません(- -;
 今日は仮称エスパーな仕事の関連で、頭文字Dな仕事(実際の頭文字Dとは全く関係ないですが(^^;)で、新しく覚えないといけない技術があり、今日はその専門書を1日読んで、分かったことをレポートにまとめたりしていました。

 1日かけて勉強していたので、P/ECEネタの続きもほとんどできず。
 表示される画面を見る限り、やはりまだ処理が間に合っていない時がある感じで、まだまだ高速化が必要なようです。

 というわけで、今日はおしまい。
 それでは、おやすみなさーい。

1178
2005/01/04()
 神懸り的なヒラメキが!!
 はい、今日は今年の仕事初日なので、ちょっと書類を作ったのと、今度の仕事の画面イメージを作成したくらいで、早めに家に帰りました(^^
 だって、みんなも早く帰っちゃうんだもん。

 というわけで、夕飯の後は、今ノリにノッているP/ECEネタの続き。
 あー、ノッているって言っても、昨日あれだけ頑張っても全然高速化できなかったこの問題に今日も挑むわけで、ちょっとゲンナリしているわけですが、なんていうか、発想の転換って言うか、なんとなくこうしたら早くなるんじゃないのぉー?ってな感じで書いてみた処理が、見事にビンゴで、約2倍の高速化に成功しました!!

 この成功を皮切りに、どんどんどんどん高速化の技が決まっていき、最終的には、最短20ms、平均50msまで高速化することに成功しました! ブラボー!!

 やったこととしては、今までちまちま1個ずつやってた処理をなるべくまとめて一気にやるようにしたり、テーブルの使い方を工夫してみたり、テーブル自体を高速RAMに置いてみたり、それはもう色々です。
 で、色々工夫していくと、だんだん処理がシンプルになっていって、関数にもまとまりやすくなり、結果、高速で小さいプログラムになり、もう大満足(^^

 これで、ようやくスムーズに動くようになったかと思えば、やっぱり時々ガタツクことがあるので、もしかしたら、処理を速くし過ぎたのかも。
 ここらへんはまた要調整ってことで、今日はおしまい。

 1日にしてこの危機(?)を脱出できてほんとに良かったです(^^
 それでは、おやすみなさーい。

1177
2005/01/03()
 また問題発覚
 今日まで仕事はお休みなので、お昼に焼肉食べたりして、のんびり休みを満喫しながらやっぱりP/ECEネタの続き(^^

 昨日の成果により、いきなりグンと進んだ今回のP/ECEネタですが、この前まではデコードが正常にできなくて困っていて、昨日ようやくデコードが正常に行えるまでにはなったのですが、今度はそのデコード処理が遅すぎて、全然処理が間に合わないという問題が浮上してきました。

 開発当初から、このデコード処理では時間がかかるし、速く処理しないと上手く動かないことは分かっていたので、最初から48MHz駆動の高速RAM領域利用で組んでいたのですが、それでも間に合わないことが分かり、途方に暮れております(j−j

 関数をインライン展開指定にしたり、for文を展開して比較処理を減らしたりしてみたのですが、微妙に高速化にはなるものの、まだまだ全然速度が足りません。

 計算上は60ms以下で処理しないといけないところ、100ms前後かかってしまっています。
 もっとこう、劇的に早くする方法はないものだろうか……

 と、いうところで、今日はおしまい。
 明日からはまた会社が始まるので、今年も頑張るです。

 それでは、おやすみなさーい。