11章リソースの削減
エンジニアリングにはスキルと深い知識が必要ですが、さらに前進するには、ずる賢さも必要です。
必要なものがすべてそろっているシステムでは、必要な要件を実装するのに工夫は不要です。あとはやるべきことをやるだけです。問題は必要なものがないときです。これでは足りないだろうというシステムが面白いのです。よくある足りないものは、ディスク容量、CPU速度、メモリ容量です。
プロセッサの数サイクルの解放、8バイトのRAMの解放、マップファイルからコードで使用できるセクションの回収、そして、あとほんの少しのディープスリープ、など微調整によりシステム全体で絶妙なバランスがとれたとき、どうにか性能を満たせたときに醍醐味を堪能できるのです。
しかし、システムをもろくしてしまうこともあります。例えば、他のサブシステムとRAMを共有すると、その分のRAMは解放できますが、そのサブシステムをリンクすることになります。この潜在的なリンクはメンテナンス性が悪く、コードはもはやモジュール化されておらず、流用もできなくなります。そして柔軟性が失われます。
本章では、現在のリソース状況と、必要なリソースを把握します。リソースの最適化テクニックでは、他のリソースとのトレードオフとなるものもあります。余っているリソースの把握は、不足しているリソースがなぜ不足しているのかの理由の把握と同じぐらい重要です。
11.1 コードスペースの削減
本節ではコードスペースの削減について解説します。
![]() |
|
訳者補 コードスペースとはプログラムで消費される内蔵メモリ(ROMやフラッシュ)の領域のことです。サーバだとディスク、MPUだとeMMCやUFSになりますが、MCUの場合はその内蔵メモリにあるコードが直接実行されます。サーバ/MPUはメインメモリにロードされてから実行されます。 ... |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access
![[Tip]](/api/v2/epubs/urn:orm:book:9784814401659/files/images/tip.png)