【メモリとストレージ】プログラミングに必要な保存と計算の区別
記事更新日:2024-02-02
![サムネイル](https://tsukiusagi.biz/wp-content/uploads/2022/01/css.png)
区別する
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
意味としては、区別してるけど
何を保存し、何を計算するかを決定することは、プログラムの読みやすさ、柔軟性、およびパフォーマンスに影響します。
imprementation Patterns
Deciding what to store and what to compute affects the readability, flexibility, and performance of programs.
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
Deciding(決定)が重要
「保存と計算」の区別
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
「2つを明確に区別すること」が大事だと言われてる
- store
- 保存
- 取得するときは、「メモリの読み取り」
- 静的な情報
- computation(calculation)
- 計算
- 取得するときは、「関数の呼び出し」
- 動的な情報
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
保存されたものを取得するのか、計算するのか
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
それぞれの動きを理解することが、決定に役立つ
1.メモリの読み取り
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
「メモリの読み取り」とは、データを「特定のメモリアドレスから取得」すること
メモリ(memory)とメモリアドレス
- メモリ
- memory、コンピュータの主記憶装置
- 変数などの小さいものも、すべてメモリに配置される
- 特徴
- 高速にアクセスできる
- 電源が切れたらデータは消える(短期記憶)
- メモリアドレス
- memoryを取り出すための住所
- データがメモリに配置されるときに、アドレスが作られる
- アドレスは、コンピュータのOSが管理している
memory:思い出すこと、思い出、記憶、記憶の機能
コンピュータでは主に、短期記憶の意味をとる
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
思い出は、常にメモリの中
メモリの割り当て(allocation)・解放(freeing)
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
メモリの一部分を占領して使い、最後は解放する
- プログラムの実行中
- メモリ割り当て:memory allocation
- 日本語では「メモリ領域の確保」ともいう
- 英語は、割り当ても確保も allocation
- allocationとは、資源(土地、財産、予算、人員、時間)を割り当てること
- メモリ割り当て:memory allocation
- プログラムの終了後
- メモリ解放:freeing memory
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
メモリを自由にしてあげることが、解放
値の取得(retrieving a value) = メモリへのアクセス(accessing memory)
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
メモリにアクセスするから、値が取得できる
- テーブルや配列は、メモリに格納されている
- 値の取得時は、メモリアドレスでメモリにアクセスして読み取る
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
人間はなかなか思い出せないけど、コンピュータはアドレスですぐに思い出せる
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
住所がないと、手紙も送れない
2.関数の呼び出し
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
メモリにアクセスするのは同じ、そのあとが違う
- 関数もメモリにあるため、メモリにアクセスして取得する
- 関数の取得後
- 関数の実行中:関数用のメモリが割り当てられる
- 関数の終了後:関数用のメモリは解放される
- メモリの解放によって、計算結果は消える
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
コンピュータは計算結果を消しちゃう
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
だから、こっちで結果を管理(保存)するしかない
管理方法を決定するのがストレージ決定(ストレージ管理とも呼ばれる)
imprementation Patterns
ストレージの決定は、プログラマーによって異なる役割を果たす
Storage decisions play a different role for different programmers.
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
つまり、答えは常にわからない
ストレージの決定
デジタルな保存場所としてのストレージ
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
ストアも、ストレージも、保存場所のこと
- store
- 商品やアイテムの保存、保存場所
- 物理的な場所
- storage
- データを保存する場所
- デジタルな場所
- ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)など
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
コンビニエンス・ストアは、商品を保存する場所
プログラミングでは様々な意味をもつ
- データを保持する場所は、すべてストレージと見なせる
- データベース、ファイルシステム、コンポーネント、配列など
- データの保存、読み込み、削除を実施することもストレージと呼ぶ
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
ストレージ管理が、人間の役割
ストレージを管理する、決定する
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit3.png?resize=150%2C150&ssl=1)
いろいろ決めなきゃいけない
- ストレージの決定
- どこに保存するかを決める
- 保存する方法を決める
- メモリにどうアクセスするかを決める
- コードの書き方を決める
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
そのときの内容によって、自分で考えて決める
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
たとえば、こういうこと
ストレージ決定の例
変数に直接アクセスするのか、クラス・オブジェクト・関数・メソッドを介してアクセスするのか
普遍的なルールはありません。プログラマーは考え、コミュニケーションし、学ぶ必要があります。それがプロであることの一部です。
imprementation Patterns
There is no universal rule. Programmers need to think, communicate, and learn. That’s part of being professional.
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/04/rabbit4-2-1.png?resize=150%2C150&ssl=1)
さまざまな手法は、ストレージ管理の工夫によるものだった
オブジェクトの目標の1つは、ストレージを管理することでした。
imprementation Patterns
One of the goals of objects was to manage storage.
![](https://i0.wp.com/tsukiusagi.biz/wp-content/uploads/2022/01/rabbit1-2.png?resize=150%2C150&ssl=1)
とにかく、どう書くかを決めるために学ぶ
区別して
ストレージを決定する
2024-02-02
編集後記:
この記事の内容がベストではないかもしれません。