タグ付けされた質問 「memory」

このタグは、メモリ管理やプログラミングの問題に使用します。一般的なソフトウェアのメモリハードウェアの問題またはエラーに関する質問については、https://superuser.com、またはこれがエンタープライズレベルのハードウェアまたはソフトウェアに関連している場合はhttps://serverfault.comにアクセスしてください。

8
LinuxでのJavaからの仮想メモリの使用、メモリが多すぎる
Linuxで実行されているJavaアプリケーションに問題があります。 デフォルトの最大ヒープサイズ(64 MB)を使用してアプリケーションを起動すると、アプリケーションに240 MBの仮想メモリが割り当てられていることがtopsアプリケーションでわかります。これにより、コンピュータ上の他のいくつかのソフトウェアでいくつかの問題が発生します。これは、比較的リソースが限られています。 予約された仮想メモリは、私が理解している限り、とにかく使用されませんOutOfMemoryError。ヒープの制限に達すると、スローされます。Windowsで同じアプリケーションを実行したところ、仮想メモリのサイズとヒープのサイズが似ていることがわかりました。 とにかく、LinuxでJavaプロセスに使用する仮想メモリを構成できますか? 編集1:問題はヒープではありません。問題は、たとえば128 MBのヒープを設定した場合でも、Linuxが210 MBの仮想メモリを割り当てるということです。 編集2:をulimit -v使用すると、仮想メモリの量を制限できます。サイズセットが204 MB未満の場合、204 MBは不要で64 MBしか必要ありませんが、アプリケーションは実行されません。だから私はなぜJavaがそれほど多くの仮想メモリを必要とするのかを理解したいと思います。これは変更できますか? 編集3:埋め込まれているシステムで実行されている他のいくつかのアプリケーションがあります。また、システムには仮想メモリの制限があります(コメント、重要な詳細から)。

1
std :: launderの目的は何ですか?
P0137は、関数テンプレートstd::launderを導入し、 共用体、存続時間、およびポインターに関するセクションで標準に多くの多くの変更を加えます。 このペーパーが解決している問題は何ですか?私が認識しなければならない言語の変更は何ですか?そして、私たちは何をしているのlaunderですか?



16
OSレベルのシステム情報を取得する
私は現在、多くの異なるプラットフォームで実行される可能性があるJavaアプリを構築していますが、主にSolaris、Linux、およびWindowsのバリアントです。 現在のディスク使用量、CPU使用率、基盤となるOSで使用されているメモリなどの情報を正常に抽出できた人はいますか?Javaアプリ自体が消費しているものについてはどうですか? JNIを使​​用せずにこの情報を取得したいのですが。
232 java  memory  resources  system 

8
Pythonでメモリ使用量をプロファイルするにはどうすればよいですか?
私は最近アルゴリズムに興味を持ち、単純な実装を記述してさまざまな方法で最適化することにより、それらの探索を始めました。 ランタイムのプロファイリング用の標準のPythonモジュールについてはよく知っています(ほとんどの場合、IPythonのtimeitマジック関数で十分であることがわかっています)が、メモリ使用量にも興味があるので、これらのトレードオフも調査できます(たとえば、以前に計算された値のテーブルをキャッシュするコストと、必要に応じてそれらを再計算するコスト)。特定の関数のメモリ使用量をプロファイルするモジュールはありますか?
230 python  memory  profiling 

8
スタックサイズがデフォルトの50倍のスレッドを作成する際の危険は何ですか?
私は現在、非常にパフォーマンスが重要なプログラムに取り組んでいます。リソースの消費を減らすのに役立つ可能性があると考える1つのパスは、ワーカースレッドのスタックサイズを増やして、アクセスするほとんどのデータ(float[]s)を移動できるようにしましたスタック(を使用stackalloc)。 スレッドのデフォルトのスタックサイズは1 MBであることを読んだので、すべてのを移動float[]するには、スタックを約50倍(50 MB〜まで)拡張する必要があります。 これは一般に「安全でない」と見なされており、推奨されないことを理解していますが、この方法に対して現在のコードをベンチマークした後、処理速度が530%向上しました。したがって、私はこれ以上の調査なしにこのオプションを単に通り抜けることはできません。それが私の質問につながります。スタックをこのような大きなサイズに増やすことに関連する危険性(何が問題になる可能性があるのか​​)と、そのような危険性を最小限に抑えるためにどのような予防策を講じる必要がありますか? 私のテストコード、 public static unsafe void TestMethod1() { float* samples = stackalloc float[12500000]; for (var ii = 0; ii < 12500000; ii++) { samples[ii] = 32768; } } public static void TestMethod2() { var samples = new float[12500000]; for (var i = 0; i < 12500000; …
228 c#  .net  memory  stack-memory 


4
Javaメモリプールはどのように分割されますか?
現在、jconsoleを使用してJavaアプリケーションを監視しています。[メモリ]タブでは、次のいずれかを選択できます。 Heap Memory Usage Non-Heap Memory Usage Memory Pool “Eden Space” Memory Pool “Survivor Space” Memory Pool “Tenured Gen” Memory Pool “Code Cache” Memory Pool “Perm Gen” それらの違いは何ですか?
224 java  memory  pool 

10
範囲外の配列にアクセスすることはどれほど危険ですか?
(Cで)境界外の配列にアクセスすることはどれほど危険ですか?時々、配列の外から読み取ったり(プログラムの他の部分で使用されているメモリにアクセスしたり、それ以降であっても理解したり)したり、配列の外のインデックスに値を設定しようとしたりすることがあります。プログラムがクラッシュすることもありますが、実行されるだけで、予期しない結果しか得られません。 さて、私が知りたいのは、これは本当に危険なのでしょうか?それが私のプログラムにダメージを与えたとしても、それほど悪くはありません。一方、まったく関係のないメモリになんとかアクセスできたために、プログラムの外で何かが壊れた場合、それは非常に悪いと思います。私はたくさんの「何かが起こる可能性があります」、「セグメンテーションは最も悪い問題ではないかもしれません」、「ハードディスクがピンクに変わり、ユニコーンがウィンドウの下で歌っているかもしれない」と読みましたが、これは本当に良いことですが、本当に何が危険ですか? 私の質問: 配列の外から値を読み取ると、プログラム以外の何かに損傷を与える可能性がありますか?物事を見ただけでは何も変わらないと思いますか、それとも、たとえばたまたま到達したファイルの「最後に開いた」属性を変更しますか? 配列の外に値を設定すると、プログラム以外のものが損傷する可能性がありますか?このスタックオーバーフローの質問から、 どのメモリロケーションにもアクセスできること、安全性が保証されていないことがわかります。 XCode内から小さなプログラムを実行します。それは私のプログラムの周りにそれ自身のメモリの外に到達できない追加の保護を提供しますか?XCodeに害を及ぼす可能性はありますか? 本質的にバグのあるコードを安全に実行する方法に関する推奨事項はありますか? OSX 10.7、Xcode 4.6を使用しています。
221 c  arrays  memory 


8
「ビュー」メソッドはPyTorchでどのように機能しますか?
view()次のコードスニペットのメソッドについて混乱しています。 class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.pool = nn.MaxPool2d(2,2) self.conv2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.Linear(16*5*5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool(F.relu(self.conv1(x))) x = self.pool(F.relu(self.conv2(x))) x = x.view(-1, 16*5*5) x = F.relu(self.fc1(x)) x = …
205 python  memory  pytorch  torch  tensor 

12
メモリの断片化とは何ですか?
「メモリの断片化」という用語は、C ++の動的メモリ割り当てのコンテキストで数回使用されたと聞いています。メモリの断片化を処理する方法についていくつかの質問を見つけましたが、それ自体を処理する直接的な質問は見つかりません。そう: メモリの断片化とは何ですか? アプリケーションのメモリの断片化が問題であるかどうかを確認するにはどうすればよいですか?どのようなプログラムが最も苦しみそうですか? メモリの断片化に対処するための良い一般的な方法は何ですか? また: 動的割り当てを使用すると、メモリの断片化が増える可能性があると聞きました。これは本当ですか?C ++のコンテキストでは、すべての標準コンテナー(std :: string、std :: vectorなど)が動的メモリ割り当てを使用することを理解しています。これらがプログラム全体で使用される場合(特にstd :: string)、メモリの断片化が問題になる可能性が高くなりますか? STLの多いアプリケーションでメモリの断片化をどのように処理できますか?

8
メモリーアライメントの目的
確かにわかりません。あなたが1バイトの長さのメモリワードを持つメモリを持っているとしましょう。アライメントされたアドレスの場合のように、アライメントされていないアドレス(つまり、4で割り切れない)の単一メモリアクセスで4バイトの変数にアクセスできないのはなぜですか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.