単機能の単純なアプリなんですが、
結構処理が重いんです。
CPU負荷率が20%に届くくらい、、、
まあ、そういうのは本当に処理が重いのか、
プログラムが稚拙で重いのか
そのどちらかなんですが、、、
私の場合は、その両方です。
ーーー
昔から書いている事なんですが、大昔の2Dの
ゲーム機並みの機能を持っています。
多層構造の画面、文字、絵文字の拡大回転機能とか、、、
半透明処理もバンバンに使っていますし、
最終出力として合成された画面からは想像が出来ないくらい
重い処理をやっているんです。
そして、それに伴い無駄な処理も、、、
ーーー
少なくとも、最適化された処理とは言えないプログラムです。
今回のアプリは
0.08秒ごとに画面を書き換えています。
これは画面操作のレスポンスから私が出した答えな訳です。
やり方さえ良ければ、画面を書き換える必要なんて無いはずなんですが、
生憎、私はその方法を知りません。
馬鹿正直に毎回書き換えている訳です。
そうすると
CPU負荷率が18%という化け物が出来上がる訳です。
これがデスクトップパソコンなら放置しますが、バッテリー駆動のスマホでは
無駄にバッテリーを食うアプリと評価される訳です。
外見では、一発ネタの軽いアプリに見えて異常に重いというギャップ、、、
これを何とか解消しなければいけないのですが、
アプリの操作間隔を考えたら、割り込み周期を落とすことは出来ません。
ーーー
では、CPUのオーバークロックみたいに必要なタイミングの時だけ、割り込み間隔を密にしたら?
どうもこの関数は、そういう使い方を想定していないようで別の箇所で設定を呼び出そうが書き換わってくれません。
まあ、キャンセルして書き換えという処理をすれば出来るかも知れませんが、基本、私は今までの知識を駆使して工夫で乗り切るタイプの人間なので、
単純書き換えが出来ない時点で諦めました。
ーーー
速度を変えられないんだったら、分周すればいい、、、
要は専用カウンターを作ってフルスピードで動く時と、1/3で動く条件を作ってしまえば良いんです。
今、見直してみると最適化された処理とは言い難いですが、
私の欲しいレスポンスは画面を触っている時だけ、、
文字入力の時だけレスポンスを稼いで通常時は頑張らない、、
そういう仕様です。
COUNTERの取りうる値が、0、1、2、3、4かな?
頭の中の設計では0、1、2を回り続けるシステムです。
COUNTERの値が1、2の時、、条件が合えば仕事をさぼる
そういうプログラムです。
結果は、
18%が9%になりました。
設計値では6%の筈なんですが結果オーライです。
それにきちんとモニターしてみないと分かりませんが、
カウンターが0、1、2、3、4と回っていそうな感じです。
まあ、現状でも常識的な10%以下の負荷なら問題ないでしょう、、、
ーーー
昨日の問題点のひとつがこれ、、、
子供騙しの姑息なテクニックであろうと、結果が伴えばそれで良いです。
私はあまり、実例を出しませんが、
私は口先だけの理論、手法を解説している訳ではありません。
いつも書いている事ですが、プレミアムドメインなんて、プレミアムドメイン相当のドメインなんて数個持っていますし、
プレミアムドメインについて解説している人間が果たして、それを持っているか?
まあ、私は持っていますよ!
時価400万円相当のドメインは、、
私の手持ちドメインは、www.kitty3.com
www.kitty1.comが400万円で、kitty3.comが1000円、、
なんて、そんなこと無いですよね!
私は、そのドメインを使って商売をする素養が無いそれだけなんです。
それに400万円のドメインって動かないんですよね!
売れない、、高すぎて、、
私は、理論、理想を語る人間では無くて、それを実施している人間です。
口先だけじゃ無いんですよ!