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

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

9
文字列に「」を追加するとメモリが節約されるのはなぜですか?
大量のデータを含む変数を使用しましたString data。この文字列の一部を次のように使用したいと思います。 this.smallpart = data.substring(12,18); (メモリビジュアライザを使用して)数時間デバッグした後、objectsフィールドにsmallpartはのすべてのデータが記憶されていることがわかりましたがdata、部分文字列しか含まれていませんでした。 コードを次のように変更した場合: this.smallpart = data.substring(12,18)+""; ..問題は解決しました!現在、私のアプリケーションはメモリをほとんど使用していません! そんなことがあるものか?誰かがこれを説明できますか?this.smallpartはデータを参照し続けたと思いますが、なぜですか? 更新:では、 どうすれば大きな文字列をクリアできますか?data = new String(data.substring(0,100))はそれをしますか?

6
多次元配列はどのようにメモリ内でフォーマットされますか?
Cでは、次のコードを使用して、2次元配列をヒープに動的に割り当てることができます。 int** someNumbers = malloc(arrayRows*sizeof(int*)); for (i = 0; i < arrayRows; i++) { someNumbers[i] = malloc(arrayColumns*sizeof(int)); } 明らかに、これは実際には、整数の個別の1次元配列の束へのポインターの1次元配列を作成します。 someNumbers[4][2]; しかし、次の行のように2D配列を静的に宣言すると...: int someNumbers[ARRAY_ROWS][ARRAY_COLUMNS]; ...同様の構造がスタック上に作成されますか、それとも完全に別の形式ですか?(つまり、ポインターの1D配列ですか?そうでない場合、それは何ですか、そしてそれへの参照はどのように理解されますか?) また、私が「システム」と言ったとき、それを理解するために実際に責任があるのは何ですか?カーネル?または、Cコンパイラはコンパイル中にそれを分類しますか?

11
JavaでコンピューターのCPU、メモリ、ディスクの使用状況を監視するにはどうすればよいですか?
Javaで次のシステム情報を監視したいと思います。 現在のCPU使用率**(パーセント) 利用可能なメモリ*(無料/合計) 利用可能なディスク容量(無料/合計) *私は、JVMだけでなく、システム全体で利用可能なメモリ全体を意味することに注意してください。 私は、自分のコードが外部プログラムを呼び出したりJNIを使​​用したりすることに依存しないクロスプラットフォームソリューション(Linux、Mac、Windows)を探しています。これらは実行可能なオプションですが、誰かがすでにより良い解決策を持っている場合、私はOS固有のコードを自分で維持しないことを望みます。 信頼できるクロスプラットフォームの方法でこれを行う無料のライブラリがあれば、それは素晴らしいことです(外部呼び出しを行ったり、ネイティブコード自体を使用したりする場合でも)。 どんな提案も大歓迎です。 明確にするために、Javaプロセスだけでなく、システム全体の現在のCPU使用率を取得したいと思います。 SIGAR APIは、探しているすべての機能を1つのパッケージで提供するため、これまでの私の質問に対する最良の答えです。ただし、GPLでライセンスされているため、元の目的(クローズドソース、商用製品)には使用できません。HypericがSIGARを商用利用するためのライセンスを取得する可能性はありますが、私は調べていません。私のGPLプロジェクトでは、将来的に間違いなくSIGARを検討します。 私の現在のニーズのために、私は次のことに傾いています。 CPU使用率OperatingSystemMXBean.getSystemLoadAverage() / OperatingSystemMXBean.getAvailableProcessors()(CPU あたりの負荷平均) 記憶のために、OperatingSystemMXBean.getTotalPhysicalMemorySize()そしてOperatingSystemMXBean.getFreePhysicalMemorySize() ディスク容量、File.getTotalSpace()およびFile.getUsableSpace() 制限: getSystemLoadAverage()メソッドを照会し、ディスクスペースまた、Java 6の下でのみ使用可能であり、いくつかのJMX機能は、(それがあることが報告されています。すなわち、すべてのプラットフォームに利用できない場合がgetSystemLoadAverage()-1を返すWindowsの場合)。 もともとGPLの下でライセンスされていましたが、Apache 2.0に変更されました。これは一般に、クローズドソースの商用製品に使用できます。

4
コンピュータプログラムが実行されるとどうなりますか?
私は一般的な理論を知っていますが、詳細に合わせることができません。 プログラムがコンピュータの二次メモリに常駐していることを知っています。プログラムが実行を開始すると、完全にRAMにコピーされます。次に、プロセッサは一度にいくつかの命令(バスのサイズによって異なります)を取得し、それらをレジスターに入れて実行します。 また、コンピュータープログラムは2種類のメモリを使用することも知っています。スタックとヒープは、コンピューターのプライマリメモリの一部でもあります。スタックは非動的メモリに使用され、ヒープは動的メモリに使用されます(たとえば、newC ++の演算子に関連するすべてのもの) 私が理解できないことは、これらの2つのものがどのように関連しているかです。命令の実行にスタックはどの時点で使用されますか?命令は、RAM、スタック、レジスターに行きますか?

11
Linuxのバッファメモリとキャッシュメモリの違いは何ですか?
私にはそれが2つのLinuxのメモリコンセプトの違い何明確ではありません。bufferとcache。私はこの投稿を読みましたが、それらの違いは有効期限ポリシーであるように思えます: バッファのポリシーは先入れ先出しです キャッシュのポリシーは、最近使用されていないです。 私は正しいですか? 特に、私は2つのコマンドで探しています:freeとvmstat james@utopia:~$ vmstat -S M procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 5 0 0 173 67 912 0 0 19 59 75 1087 24 4 71 1 james@utopia:~$ free -m …
179 linux  caching  memory  buffer 

5
さまざまなキャッシュとメインメモリにアクセスするための概算コストは​​?
Intel i7プロセッサのメインメモリだけでなく、L1、L2、L3キャッシュにアクセスするためのおおよその時間(ナノ秒単位)を誰かに教えてもらえますか? これは特にプログラミングの問題ではありませんが、これらの種類の速度の詳細を知ることは、いくつかの低レイテンシのプログラミング課題にとって必要です。

17
コマンドラインツールを使用してJavaヒープサイズと使用メモリを確認する(Linux)
Javaアプリケーションのヒープサイズ(および使用メモリ)を確認するコマンドラインツール(Linux)はありますか? 私はjmapを試してみました。しかし、それは情報を提供します。Eden / PermGenなどの内部メモリ領域については、私には役に立ちません。 私は次のようなものを探しています: 最大メモリ:1GB 最小メモリ:256 MB ヒープメモリ:700 MB 使用済みメモリ:460 MB それで全部です。JConsoleなどでこれを確認できることはわかっていますが、コマンドラインツールが必要です(JMXなどを有効にできません)。 そのようなツール/コマンドを知っていますか?
171 java  linux  performance  memory  heap 

5
キャッシュラインはどのように機能しますか?
プロセッサがキャッシュラインを介してデータをキャッシュに取り込むことを理解しています。たとえば、私のAtomプロセッサでは、読み込まれる実際のデータのサイズに関係なく、一度に約64バイトが取り込まれます。 私の質問は: メモリから1バイトを読み取る必要があると想像してください。どの64バイトがキャッシュに読み込まれますか? 私が見ることができる2つの可能性は、64バイトが対象のバイトより下の最も近い64バイトの境界から始まるか、または64バイトが所定の方法でバイトの周りに広がる(たとえば、半分下、半分上、または中でも)。 どっち?

8
文字列リテラル:どこに行くのですか?
文字列リテラルが割り当てられる/格納される場所に興味があります。 ここで興味深い答えが1つ見つかりました。 インラインで文字列を定義すると、実際にはプログラム自体にデータが埋め込まれ、変更できません(一部のコンパイラではこれをスマートトリックで許可しているので、気にしないでください)。 しかし、それはC ++に関係していることは言うまでもありません。 気になります。= D だから私の質問は私の文字列リテラルがどこにどのように保持されるのですか?それを変更しようとしないのはなぜですか?実装はプラットフォームによって異なりますか?「スマートトリック」について詳しく説明する人はいますか?

8
Scala対Java、パフォーマンスとメモリ?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私はScalaを調べたくて、答えを見つけることができないように思えない基本的な質問があります。一般的に、ScalaとJavaの間でパフォーマンスとメモリの使用量に違いはありますか?

13
java.lang.OutOfMemoryError:ビットマップのサイズがVMの予算を超える-Android
Androidで画像をたくさん使うアプリを開発しました。 一度アプリを実行すると、画面上の情報(充填Layouts、Listviews、Textviews、ImageViews、など)を、ユーザが情報を読み取ります。 アニメーションや特殊効果など、記憶をいっぱいにするものはありません。ドローアブルは変更される場合があります。一部はAndroidリソースであり、一部はSDCARDのフォルダーに保存されたファイルです。 次に、ユーザーが終了し(onDestroyメソッドが実行され、アプリがVMによってメモリにとどまります)、その後、ある時点でユーザーが再び入力します。 ユーザーがアプリにアクセスするたびに、ユーザーがを取得するまで、メモリがどんどん増えているのがわかりますjava.lang.OutOfMemoryError。 それで、多くの画像を処理するための最良の/正しい方法は何ですか? 常にロードされないように、静的メソッドに配置する必要がありますか?レイアウトまたはレイアウトで使用されている画像を特別な方法でクリーニングする必要がありますか?

13
「コンパイル時に割り当てられるメモリ」とはどういう意味ですか?
CやC ++などのプログラミング言語では、多くの場合、静的および動的なメモリ割り当てを参照します。概念は理解していますが、「コンパイル時にすべてのメモリが割り当てられた(予約された)」というフレーズは常に混乱します。 コンパイルは、私が理解しているように、高レベルのC / C ++コードを機械語に変換し、実行可能ファイルを出力します。コンパイルされたファイルでメモリはどのように「割り当て」られますか?メモリは常にすべての仮想メモリ管理機能を備えたRAMに割り当てられているのではないですか? 定義によるメモリ割り当ては、ランタイムコンセプトではありませんか? C / C ++コードで1KBの静的に割り当てられた変数を作成すると、実行可能ファイルのサイズが同じだけ増加しますか? これは、「静的割り当て」という見出しの下でフレーズが使用されているページの1つです。 基本に戻る:メモリー割り当て、歴史の歩み

9
私の変数はメモリのどこにCに保存されますか?
メモリがデータ、ヒープ、スタック、コードの4つのセグメントに分割されていることを考慮して、グローバル変数、静的変数、定数データ型、ローカル変数(関数で定義および宣言)、変数(メイン関数内)、ポインター、および動的に割り当てられたスペース(mallocおよびcallocを使用)はメモリに格納されますか? 次のように割り当てられると思います。 グローバル変数------->データ 静的変数------->データ 定数データ型----->コード ローカル変数(関数で宣言および定義)--------> stack メイン関数で宣言および定義された変数----->ヒープ ポインタ(例えばchar *arr、int *arr)------->ヒープ 動的に割り当てられたスペース(mallocおよびcallocを使用)-------->スタック これらの変数は、Cの観点からのみ参照しています。 私はCを初めて使用するので、間違っている場合は修正してください。

9
Cでは、ブレースはスタックフレームとして機能しますか?
中括弧の新しいセット内に変数を作成した場合、その変数は閉じ中括弧のスタックからポップされますか、それとも関数の最後までハングしますか?例えば: void foo() { int c[100]; { int d[200]; } //code that takes a while return; } ウィルd中にメモリを占有するcode that takes a whileセクション?
153 c  memory  stack 

10
iOSアプリの最大メモリ量
私は少なくとも3gsをターゲットにしているiOSゲームに取り組んでいます。Retinaディスプレイデバイス(iphone 4、ipod touch第4世代)にHDアセットを使用しています。 メモリに関しては、Ipod Touch 4世代は3gsと同じ量のRAM(Iphone 4の512と比較して256)を持っているため、私たちにとって最も制約のあるデバイスのようですが、HDアセットを使用しています。以前は100〜110 MBのRAMを読み込もうとしたときにアプリがクラッシュしていましたが、70 MBに下がったため、読み込みがクラッシュすることはありませんでした。 多くの検索を行った後、公式のハードリミットはないようです。安全のために使用するメモリバジェットを知るにはどうすればよいでしょうか。私たちはアーティストに、各マップについてメモリの心配なしに使用できる予算を与えることができるようにしたいと考えています。

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