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

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


8
PythonはC ++より高速で軽量ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 Pythonの利点はコードの可読性と開発速度であると常に思っていましたが、時間とメモリの使用量はC ++の場合ほどではありませんでした。 これらの統計は私を本当に強く打った。 PythonとC ++の時間とメモリ使用量について、あなたの経験から何がわかりますか?

12
Cメモリ管理
Cでは、メモリの管理方法を実際に監視する必要があるといつも聞いています。そして、私はまだCを学び始めていますが、これまでのところ、関連するアクティビティを管理するメモリをまったくする必要がありませんでした。私は、変数を解放してあらゆる種類の醜いことをしなければならないことを常に想像していました。しかし、そうではないようです。 誰かが「コード管理」を使って、「メモリ管理」をしなければならないときの例を見せてくれますか?
90 c  memory 

4
memmpyよりmemmoveが速いのはなぜですか?
memmove(3)で時間の50%を費やすアプリケーションのパフォーマンスホットスポットを調査しています。アプリケーションは、何百万もの4バイト整数をソートされた配列に挿入し、memmoveを使用してデータを「右に」シフトし、挿入された値のためのスペースを作ります。 メモリのコピーは非常に高速であると私は予想しており、memoveに多くの時間が費やされていることに驚きました。しかし、それからmemmoveは、メモリの大きなページをコピーするのではなく、タイトなループで実装する必要がある重複領域を移動するため、遅いと考えました。memcpyとmemmoveの間にパフォーマンスの違いがあるかどうかを確認するために、小さなマイクロベンチマークを書きました。memcpyが勝つことを期待しています。 私は2つのマシン(コアi5、コアi7)でベンチマークを実行し、memmpyがmemcpyよりも実際に高速であることを確認しました。古いコアi7では、2倍近くも高速です!今、私は説明を探しています。 これが私のベンチマークです。memcpyで100 mbをコピーし、memmoveで約100 mb移動します。ソースと宛先が重複しています。発信元と宛先のさまざまな「距離」が試されます。各テストは10回実行され、平均時間が印刷されます。 https://gist.github.com/cruppstahl/78a57cdf937bca3d062c Core i5(Linux 3.5.0-54-generic#81〜precise1-Ubuntu SMP x86_64 GNU / Linux、gccは4.6.3(Ubuntu / Linaro 4.6.3-1ubuntu5)での結果です。角かっこ内の数値はソースと宛先の間の距離(ギャップサイズ): memcpy 0.0140074 memmove (002) 0.0106168 memmove (004) 0.01065 memmove (008) 0.0107917 memmove (016) 0.0107319 memmove (032) 0.0106724 memmove (064) 0.0106821 memmove (128) 0.0110633 MemmoveはSSEに最適化されたアセンブラーコードとして実装され、後ろから前へコピーします。ハードウェアプリフェッチを使用してデータをキャッシュにロードし、128バイトをXMMレジスタにコピーして、宛先に格納します。 (memcpy-ssse3-back.S、1650行目以降) L(gobble_ll_loop): prefetchnta -0x1c0(%rsi) prefetchnta -0x280(%rsi) prefetchnta -0x1c0(%rdi) …
89 c++  c  performance  memory 

4
メモリマップトファイルの利点は何ですか?
私はプロジェクトのメモリマップトファイルを調査してきましたが、以前にそれらを使用したことがあるか、使用しないことに決めた人からの考えをいただければ幸いです。その理由は何ですか。 特に、重要度の高い順に、次のことが懸念されます。 並行性 ランダムアクセス パフォーマンス 使いやすさ 移植性

14
スタックは上向きまたは下向きに成長しますか?
私はcにこのコードを持っています: int q = 10; int s = 5; int a[3]; printf("Address of a: %d\n", (int)a); printf("Address of a[1]: %d\n", (int)&a[1]); printf("Address of a[2]: %d\n", (int)&a[2]); printf("Address of q: %d\n", (int)&q); printf("Address of s: %d\n", (int)&s); 出力は次のとおりです。 Address of a: 2293584 Address of a[1]: 2293588 Address of a[2]: 2293592 Address …
89 c  memory  stack 

15
コンピュータに搭載されているRAMの総量をどのように取得しますか?
C#を使用して、コンピューターに搭載されているRAMの合計量を取得したいと思います。PerformanceCounterを使用すると、次のように設定することで、使用可能なRAMの量を取得できます。 counter.CategoryName = "Memory"; counter.Countername = "Available MBytes"; しかし、メモリの総量を取得する方法を見つけることができないようです。どうすればこれを行うことができますか? 更新: MagicKat:検索中にそれを見ましたが、機能しません-「アセンブリまたは参照がありませんか?」。それをリファレンスに追加しようとしましたが、そこには表示されません。


17
テキストファイルの行数を効率的にカウントします。(200mb +)
スクリプトで致命的なエラーが発生することがわかりました。 Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 440 bytes) in C:\process_txt.php on line 109 その行はこれです: $lines = count(file($path)) - 1; したがって、ファイルをメモリにロードして行数を数えるのが難しいと思いますが、メモリの問題なしにこれを行うためのより効率的な方法はありますか? 行数を数える必要があるテキストファイルは、2MBから500MBの範囲です。たぶんギグ。 助けてくれてありがとう。

3
Linuxoom-killerのログを理解する
私のアプリはoom-killerによって殺されました。これは、スワップなしのライブUSBで実行されているUbuntu 11.10であり、PCには1ギガバイトのRAMが搭載されています。実行されている唯一のアプリ(Ubuntuに組み込まれているものを除く)は、私のプログラムflasheravです。/ tmpはメモリマップされており、クラッシュ時に約200MBのファイルが含まれていたことに注意してください(したがって、最大200MBのRAMを使用していました)。 om-killerログを分析して、すべてのメモリがどこで使用されているかを正確に理解できるようにする方法を理解しようとしています。つまり、合計で最大1ギガになり、oom-killerキックが発生するさまざまなチャンクは何ですか。に?それを理解したら、1 GBのRAMを搭載したマシンでアプリが実行されるように、違反者の使用量を減らすことに取り組むことができます。私の具体的な質問はです。 状況を分析するために、「total_vm」列を合計すると、609342KBしか得られません(/ tmpの200MBに追加しても、まだ809MBです)。「total_vm」列が何であるかについて間違っているかもしれません-割り当てられているが使用されていないメモリと共有メモリが含まれていますか。はいの場合、実際に使用されているメモリを大幅に誇張するべきではありません(したがって、メモリが不足するべきではありません)。以下のリストに記載されていない、使用中の他のメモリチャンクはありますか? [11686.040460] flasherav invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0 [11686.040467] flasherav cpuset=/ mems_allowed=0 [11686.040472] Pid: 2859, comm: flasherav Not tainted 3.0.0-12-generic #20-Ubuntu [11686.040476] Call Trace: [11686.040488] [<c10e1c15>] dump_header.isra.7+0x85/0xc0 [11686.040493] [<c10e1e6c>] oom_kill_process+0x5c/0x80 [11686.040498] [<c10e225f>] out_of_memory+0xbf/0x1d0 [11686.040503] [<c10e6123>] __alloc_pages_nodemask+0x6c3/0x6e0 [11686.040509] [<c10e78d3>] ? __do_page_cache_readahead+0xe3/0x170 [11686.040514] [<c10e0fc8>] filemap_fault+0x218/0x390 …


7
64ビットオペレーティングシステムで32ビットプロセスがアクセスできるメモリはどれくらいですか?
Windowsでは、通常の状況では、32ビットプロセスは2GBのRAM(またはboot.iniファイルの特別なスイッチを使用して3GB)にしかアクセスできません。64ビットオペレーティングシステムで32ビットプロセスを実行する場合、使用可能なメモリはどれくらいですか?これを変更できる特別なスイッチや設定はありますか?
86 windows  memory  wow64 


7
VS2015 Update 2メッセージ:「メモリ不足が検出されました。このソリューションでは、完全なソリューション分析が無効になっています。」
Visual Studio2015をUpdate2で​​更新しました。 数時間正常に動作した後、「メモリ不足が検出されました。このソリューションでは完全なソリューション分析が無効になっています」というメッセージが表示されました。これは、VS2015のエディタードックパネルの上部に表示されます。 MicrosoftConnectでバグが報告されているのを見ました。 ノート: Resharperを使用しています。 私のソリューションはかなり大きく、最大32のプロジェクトが含まれています。 誰かがこれを解決するために何をすべきかについての回避策またはヒントを持っているなら、私に知らせてください。 更新:私はAnders Forsgren(最初のコメント)とほとんど同じ気持ちを持っています。それは私には状況の良い要約に聞こえます。 アップデート2(2016-04-20)最近(3日前)、Framework.Netでインストールされたパッケージ(「プログラムと機能」から)を大幅にクリーンアップし、約20〜30個のパッケージを削除しました。一部はロシア語でした。VisualStudioとReSharperも再インストールしました。そのすべてが私の環境にある程度の安定性を追加したようです(フリーズが少なくなるか、なくなる->時間がわかります)。また、最近リリースされた新しい(2016-04-19).NETFramework修復ツールバージョンがあります。おそらく、関連がある場合、問題のいくつかを修正するのに役立つ可能性がありますか? 更新3いくつかのテストの後、いくつかの人々のテキストを読んでください。.Netフレームワーク自体やResharperとは関係がないようです。VS2015自体、おそらくRoslynに関連しているようです。Roslyn / CodeAnalysisをVS2015から削除することに成功しませんでした。これは重要な部分のようです。Microsoftの修正が安定した環境になるまで待つ必要があるようです。 アップデート4(2016-04-26)JohnAtwoodの回答を参照してください。たくさんの情報。私はちょうどその答えをテストし始めました。アップデート3はこの問題を解決するはずです(利用可能な場合???)。 アップデート5(2016-04-26 + 6時間) VS自体によって1回再起動され、1回の信じられないほどの速度低下と、1回のメッセージ「メモリ不足...」の後、フルソリューション分析を無効にしても問題が解決しないことを確認できました。少なくとも私のマシンでは。私は現在、自分のマシンで機能する修正/回避策を知りません。 アップデート6(2016-06-15) MladenMihajlovicが私を起こした。VS2015 Update 3 RCの可用性について説明するのを忘れていることに気づきました(2番目のリリースであるUpdate 3 RC2だと思うことに注意してください)。6月7日からMSDNで利用可能で、RC1 = 14.0.25401.00、RC2 = 14.0.25402.00です。それははるかに安定しているように聞こえます(私はそれを強くお勧めします)。

10
Javaでは整数はビットレベルで内部的にどのように表されますか?
Javaが整数を内部的に格納する方法を理解しようとしています。私はすべてのJavaプリミティブ整数が署名されていることを知っています(短いものを除く?)。つまり、1バイトで使用できるビット数が1つ少なくなります。 私の質問は、すべての整数(正と負)が2の補数として格納されているのか、それとも2の補数の負の数だけなのかということです。 スペックが言っているのがわかりますx bit two's complement number。しかし、私はしばしば混乱します。 例えば: int x = 15; // Stored as binary as is? 00000000 00000000 00000000 00001111? int y = -22; // Stored as two complemented value? 11111111 11111111 11111111 11101010 編集 明確にするために、 x = 15 In binary as is: `00000000 00000000 00000000 00001111' Two's …

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