質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • OS

    199questions

    OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

  • データ構造

    46questions

    データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

「メモリに乗らない」という時のメモリ上限値は何を見ればわかりますか?

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 243

afild

score 4

データ処理を扱っていると、時々「メモリに乗らない(大容量データ)」という表現に遭遇します。
例: pandas でメモリに乗らない 大容量ファイルを上手に扱う

また、ネットワーク経由の I/O などで大量データが送られてきて、分割して処理する必要がある場合も考えられると思います。

お恥ずかしながら非常に基礎的な質問になるのですが、この際の「メモリ」の上限値は何を見れば分かるのでしょうか…?
例えば、Mac Book Pro の場合、この「8GB 2,133MHz LPDDR3メモリ」に記載がある 8GB が上限値とみなせるのでしょうか…?

背景としては:

  1. 常識的なメモリの上限・下限を把握して、非常識なコードを無自覚に生成してしまうことを防ぐ
  2. 現在、個人的にアルゴリズムを学習し直しており、計算量・メモリに関する常識的な感覚を養いたいと考えている

相当初歩的、かつ、的はずれな質問をしている自覚はあるのですが、検索してもうまくぴったりな情報を見つけられず、ぜひお知恵を拝借できればと思っております。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

Macの場合、「アクティビティモニタ」の「メモリ」パネルの下部でメモリの使用状況が確認できます。ざっくりですが、「物理メモリ」から「使用済みメモリ」を引いた残りが、その時点でのいわゆる「空きメモリ」で、これが「メモリに乗せられる」サイズの目安と考えるのが良いのではないかと思います。

ただし実際には、このサイズ全部を使うことはできません。空きメモリが減りすぎるとファイルキャッシュ(一度アクセスしたファイルの中身をメモリに乗せておいて、次回のアクセスを省略して高速化する)に使える量が減ってしまい、パフォーマンスに影響が出てしまうためです。

ちょっとややこしいのですが、OSがファイルキャッシュで使うメモリは使用済みメモリには含まれていません。空きメモリの中から確保します。そのため空きメモリが減ると、ファイルキャッシュに使えるサイズも減ってしまうのです。ファイルキャッシュ用にどれくらい空きメモリを取っておけば良いかは、そのマシンで動作するアプリケーションや利用状況に依存するため一概には言えません。パフォーマンスの検証が必要です。

あと、アプリケーションは自分がプログラムを書いて確保した以上にメモリを使います。例えばスレッドを生成すると、そのスレッドのスタック用にメモリが使われます。スレッドをたくさん生成するようなプログラムでは、これだけでもそこそこのメモリ使用量になります。この辺は、アクティビティモニタでご自分のプロセスのメモリ使用量を確認してみるのが良いかと思います。

参考:Mac でアクティビティモニタを使う方法/メモリ

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/03 00:20

    お二方ともご丁寧にありがとうございます!
    理解が曖昧だった部分が、だいぶ明確になりました。本当にありがとうございます。

    キャンセル

0

正確なところは、知らないので参考情報となりますが、、、

「8GB 2,133MHz LPDDR3メモリ」

確かに 8GBが上限とも言えますが、、、
アプリが動くためには何が必要かと言うと、アプリは当然必要ですが、その前に OSが動いている必要があります。また、画面に表示を行っているので、表示用のメモリが必要となります。ネットワークが動いていれば、それもまた。
その一方、ハードディスクなどの外部記憶装置をメモリの一部として見なして使う方法も一般的です。 Macの場合、Unix系と聞くので、Swapがそれに相当するでしょうか?
OSとアプリその他が使用するメモリ量がそのPCで使える総メモリ量に達した時に、上限となります。外部記憶装置は遅いので、メインメモリに入りきらないデータを頻繁に扱いだすと、処理速度は大幅に低下します。
なお、CPUそのものが扱えるメモリ量もあり、32bitでは、約4GBですが、64bitの場合、4GB x 4GB (正確には、アーキテクチャ依存) なので、当面は問題にならないと思われます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/02 20:22 編集

    ご丁寧にありがとうございます!

    そうですよね、ハードウェア上のメモリ上限以外にも、その他、稼動中のプロセスがメモリを使い、実際はハード上の上限値よりも少ない値が上限になるのかと思います。

    また、仮想メモリやスワップなど、ディスクを使いつつメモリ利用を最大化する方法もある中で、どの辺りがこの文脈でいう「メモリ上限値」なのかなというのが気になりました…。

    キャンセル

  • 2018/06/02 20:40

    > 「メモリに乗らない(大容量データ)」
    自分の知る範囲では、オンメモリ... メインメモリで動作しない場合という認識。正確には、OS等で使われないデータが スワップ/ページ アウトされた後の残りのメモリという感じと捉えています。
    OSに任せた仮想メモリでも動くでしょうが、パーフォーマンスが大幅に低下するので、自前でコントロールするという文脈が多いと云う気がします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • OS

    199questions

    OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

  • データ構造

    46questions

    データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)