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

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

新規登録して質問してみよう
ただいま回答率
85.48%
OS

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

データ構造

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

Q&A

解決済

2回答

2383閲覧

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

afild

総合スコア14

OS

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

データ構造

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

0グッド

0クリップ

投稿2018/06/02 10:52

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

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

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

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

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

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

投稿2018/06/02 15:07

編集2018/06/02 15:15
segavvy

総合スコア958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

afild

2018/06/02 15:20

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

0

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

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

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

投稿2018/06/02 11:16

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

afild

2018/06/02 11:23 編集

ご丁寧にありがとうございます! そうですよね、ハードウェア上のメモリ上限以外にも、その他、稼動中のプロセスがメモリを使い、実際はハード上の上限値よりも少ない値が上限になるのかと思います。 また、仮想メモリやスワップなど、ディスクを使いつつメモリ利用を最大化する方法もある中で、どの辺りがこの文脈でいう「メモリ上限値」なのかなというのが気になりました…。
pepperleaf

2018/06/02 11:40

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問