• 締切済み

メモリマップ

プログラミングC言語のことについてなんですが・・・ メモリマップの利点などが知りたいので教えてください↓↓↓↓↓ 難しい言葉は使わず回答してくれると助かります↓↓↓↓↓

  • 12ka
  • お礼率0% (0/8)

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

#1の方の回答で質問者さんの疑問はたぶん解決すると思うんですが、 "メモリマップド I/O" というものもありますので、 "メモリマップ"なんて略し方はしないほうがいいです。 あ、さらにメモリをどのように使うかを表した図なんかも "メモリマップ"になるか。 参考URLに貼れなかったので本文に。 http://www.google.com/search?sourceid=mozclient&ie=utf-8&oe=utf-8&q=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97

  • guccii
  • ベストアンサー率31% (14/44)
回答No.1

メモリマップドファイルを利用する利点はおおよそ以下の通りです。 1.ガベージコレクタを備えたメモリ(やバッファ)を使用して大きいサイズのデータや連続した多量のデータを扱うことは、データが必要なときに(多重に)読み直しを繰り返したり、多重にメモリのコピーをしてしまうなどの問題により非効率である場合がある。そのため、ファイル(中のブロック)を直接メモリにマッピングすることで、I/O効率の向上を図るため。 2.メモリの確保・解放になんらかの特徴があり、一般的なヒープ構造によるメモリ管理では、断片化等の問題により非効率である場合がある。このため、大きめのブロックメモリの中に効率的な独自のメモリ管理を実現したいため。 3.プロセス間でデータを交換する場合に、プロセス間で共有できるメモリ空間が必要になるため。 4.もともとファイルに保存される予定がなく、メモリ上に存在しているものとしてコーディングされ、後でやっぱりディスクに保存する必要が発生し、処理効率よりも開発工数・期間の優先度が高いため、現在のメモリイメージをそのままファイルに保存するようにして逃げるため。 ここでの言葉が難しくて全くわからないようであれば、まだメモリマップドファイルについて知る必要はありません。そのようなものがあることだけ覚えておいて、必要になったときに思い出して勉強すればいいと思います。

関連するQ&A

  • ゲームプログラミングのマップ読み込みについて

    製作環境: C言語*DXライブラリ Microsoft Visual Studio Express 2012 現在、ぽちぽちとRPG製作を進めています。プログラミング初心者です。 タイトルの通り、マップの読み込みについて質問があります。 非常に大きなダンジョンのマップAがあります。 (ドラゴンクエスト3or4、のフィールド全体のマップ、くらいだと思ってください。大げさですけど) このマップA、ダンジョンなものですから普段使用しません。 とは言ってもその場面が来れば何度も使用することになります。 【A案】 あまりに大きいので、最初、いくつかに分割して読み込ませたらどうかなーと思ったのです。 0, 1, 2, 3 4, 5, 6, 7 8, 9,10.11 こんな感じに分けた上で、0に主人公がいた場合、0,1,4,5 辺りのみ読み込ませます。 このマップの表示には静的メモリを取りません。 ようするに60FPSなら、毎秒60回、主人公の周りのマップを読み込んでいます。 【B案】 一秒間に60回読み込むとか、ありえないでしょー。どう考えてもメモリ使いすぎでしょー。 と思ったので、次は最初から全て静的メモリにマップを確保しておいたらどうだろう。と思ったのです。 でもこれだと、ダンジョンのマップなものですから、全部確保したら使わない時にはメモリ無駄にしちゃうよな。と思ったのです。 【C案】 動的メモリとかいうものを使う、まだ学んでない関数があるらしい。 と、A,B,Cの三つを考えたのですが、実際、どれがどのくらいメモリを消費するのか分からないのです。 実際にC言語で巨大なマップを作ろう! と考えたときに、プログラミング初心者の私がチャレンジするのはどれが妥当でしょうか? もしくは別の考え方でこういうのがあるよ。と言ったものがありましたら教えてください。 よろしくお願いいたします。 ただし、巨大なマップ自体を作らない。と言った回答はなしでお願いします。

  • メモリの中身は大切?

    初歩の質問で申し訳ないです。 プログラミングするときには、 「メモリ内部に変数等がどのように格納されているかイメージできることが大切。(たとえばC言語において配列と、ポインタ配列のメモリの割り当て方が違うなど)」 とかいうのをたまに聞きますが、これってなんで大切なんですかね???

  • マイコンのメモリマップについて

    マイコンに限った話ではないかとは思いますが、現在マイコンプログラムの勉強をしておりますが、マイコンのデータシートのメモリマップを見ると先頭番地からフラッシュメモリのマッピングがあり、その次に各種レジスタやRAMのマッピングがなされています。 (1)このメモリマップというものは論理アドレスと物理アドレスの対応表のようなものだと解釈しておりますが、この対応表自体はRAMの一部に格納されているのでしょうか? (2)例えばフラッシュメモリの物理アドレスが00~FFまであり、RAMの物理アドレスも00~FFだった場合で且つ フラッシュメモリの後ろにRAMのマップを作る場合、メモリマップの中の論理アドレスは00~2FFまでで物理アドレスはフラッシュメモリの部分は00~FF,RAMのブツリアドレスも00~FFになるという理解で良いですか? ひょっとするとかなり見当違いをしている質問かもしれません。 よろしくお願いします。

  • メモリマップについて

    ハードを組む上でメモリマップが作られるのは分りましたが、ソフトから見るとベクターテーブルが0000H番地に必ずいます。このベクタテーブルって何ですか? またどのような働きがあるのですか?またベクターテーブルはプログラマーが組むものなんですか?

  • L2キャッシュとメモリ容量の取得

    CPUのL2キャッシュ容量と物理メモリの全容量を取得するにはどうすればいいでしょうか? 使っているプログラミング言語は「ひまわり」です。 Visual C++ 2008 Express Editionも入っているので多少のDLLだったら作れると思います。 ご回答よろしくお願いします。

  • コンパイル言語とインタープリター言語の違いについて

    コンパイルするプログラミング言語とインタープリターする プログラミング言語の違いについて教えてください。 特に、開発上および運営上の利点・欠点についてお願いします。 また、CGIでは、PHPやPERLなどのインタープリター言語が 主流ですが、その理由とC言語などで組むのと比較して、 どのような利点があるのか教えてください。

  • シムシティで、マップが欠けてしまいます。欠けるマップは大マップだけです

    シムシティで、マップが欠けてしまいます。欠けるマップは大マップだけですこれだと、見ずらいのでできたら回答をお願いします ちなみにスペックは OS Windows7 Home Premiun CPU intel core i7 グラフィック ATI Radeon HD 5800 Series メモリ(RAM?) 8.00GB (3.12GB使用可能) モデル ドスパラ Prime Series です。

  • マインドマップについて

    高2です。 最近マインドマップというのを知り、これで勉強してみようかと思うのですが書き方がよくわかりません。 本を読んだり調べたりしたのですが、勉強として使っているいいものがなくて…。 また、マインドマップの利点、欠点なども知りたいです。 どなたかマインドマップについて知っている方、教えてください。よろしくお願いします。

  • CPUメモリマップについて

    以前も質問させて頂いたのですが、どうしても分からない為、 どなたか教えて下さい。 以下に参考資料をを挙げさせて頂きます。 ARMのアーキテクチャマニュアルです。 https://www.jp.arm.com/document/manual/files/051020DDI0100HJ_v6_1.pdf の761ページの「デフォルトメモリマップ」について質問です。 ICache, DChache, ライトスルーキャッシュ, ストロングオーダなど、 単語単語の意味はなんとなく理解できるのですが、 ・このアドレス空間は何を示しているのでしょうか?  通常のアドレスマップは仮想アドレス空間にどのデバイスが割当て  られている状態、を表したものだと理解しています。 ・これによって何を読み取ることができるのでしょうか? 漠然とした質問ですみません‥がこれも無知が故です。 すみませんが、どなたかご回答お願い致します。

  • マップのデータを消去すると?

    メモリ貧乏で定評のあるXperia Acro (SO-02C)を今もまだ使っています。 メモリをバカ食いしているマップのデータを消してしまいたい衝動にかられています。 でもそれに同期して、PCで作ったマイプレイスまでも一緒に消えてしまうのではないかと恐れています。 実際のところ、マップの「データを消去」すると何が消えるのでしょうか。 教えていただけると助かります。

専門家に質問してみよう