アプリケーションパフォーマンス最適化には、いくつかの方法がある。
経過時間の長い関数の測定
経過時間の長い関数の最適化
データ構造の見直し
無駄処理の発見
ハードウェア処理の利用
経過時間の長い関数の測定
Profilerというツールで、どの関数の経過時間を測定する。
実測して加算する方法と、一定時間ごとにどの関数を実行しているかを測定する方法がある。
経過時間の長い関数の最適化
Profilerで、経過時間の長い関数で、inlineマクロにしたり、計算結果の表引きにしたりして、実行時間の短縮化をはかる。
データ構造の見直し
データ中心設計
成功体験は語っても、成功体験に頼らないために。清水吉男・田中伸明・柏原一雄・佐々木 眞一。仮説(153), 図(28)
https://qiita.com/kaizen_nagoya/items/d32adfaf7b2568bfd9d2
無駄処理の発見
無駄処理の発見方法は、実際のコードの状態、利用しているOS、言語、通信規約、DBによる。
OS、言語、通信規約、DBの組み合わせによっては、無駄がある場合がある。
ハードウェア処理の利用
ハードウェア処理の利用には、3つの方法がある。
現存するハードウェア処理の直接利用である割り込み処理の利用
FPGAなどによる前処理または後処理の追加
CPU, GPUの再設計
現存するハードウェア処理の直接利用である割り込み処理の利用
OSEK OS(AUTOSAR CP OS)をざっくり理解するには OSEK(3)
https://qiita.com/kaizen_nagoya/items/c68c0b86b97d4a90e6e2
osek/vdx os open source
https://qiita.com/kaizen_nagoya/items/59a4202bcb68e2dfd2b5
FPGAなどによる前処理または後処理の追加
クラウドサービスで、既存のサービスの処理のボトルネックを、キャッシュなどのバッファを儲けたり、アルゴリズムをハードウェア化して高速化する。
RTL設計スタイルガイド Verilog HDL編(System Verilog対応版)coding(73)
https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7
Xilinx: FPGA と Verilog HDL(5) coding(84) https://qiita.com/kaizen_nagoya/items/6db0b65fb1c227722660
FPGAをクラウドで開発する環境を探し中。HDL(6) https://qiita.com/kaizen_nagoya/items/cdf429ae3d134bae358e
CPU, GPUの再設計
今、一番着目されている。
dockerでchisel。2通りでbuildしてみた。最後は「RISC-VとChiselで学ぶCPU自作」。
https://qiita.com/kaizen_nagoya/items/6925755897f7d83bfe42
CPUの創り方、Hardware Description Language, Verilog HDL(0) coding(98)
https://qiita.com/kaizen_nagoya/items/010a48bb83639026a014