問題タブ [allocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3878 参照

c++ - 新しい演算子が呼び出されないのはなぜですか

動的にロードされたライブラリ(dlopenなどでロードされた)が実際に独自の新しい削除演算子を使用し、呼び出し元のプログラムで定義されたものではないことを確認したかったのです。だから私は次のlibrary.cppを書きました

でコンパイルしました

または雇用されたロシア人が試みることを提案したように(しかし結局何も変わらなかった)

クラスBaseは、この値を取得するためにint値と関数get_value()のみを保持しています。その後、client.cppをこのように書きました

でコンパイルしました

クライアントを実行すると、「呼び出されたクライアントの新規」と「呼び出されたクライアントの削除」のみが表示されます。コンパイラスイッチ-Bsymbolicをライブラリに使用しても、EmployedRussianが提案しました。

今:何が悪かったのですか?共有ライブラリは独自のnew/deleteを使用していると思ったので、ファクトリの隣にライブラリコードでデストラクタdestroyを作成するように指定する必要があります。

補足質問:destroy(Base * p)関数が必要なのはなぜですか?この関数がクライアントのdelete-operatorのみを呼び出す場合は、自分でそれを行うこともできます。つまり、最後の行の次のdestroy_module(a)の代わりに「deletea」を実行します。

私が見つけた回答:ライブラリは、new/delete-operatorのペアも提供できます。したがって、最初にライブラリの新しいものを使用し、後でクライアントの削除を使用すると、おそらく落とし穴に踏み込むことができます。悲しいことに、これまで、自分のライブラリが独自の新規または削除を使用しているのを見たことがありませんでした...したがって、元の質問にはまだ回答されていません。

補足:私はLinuxプラットフォームについてのみ言及しています。

編集:重要な部分は、雇用されたロシアの回答へのコメントにあります。だから私は一言で言えば主な手がかりを与えています:このようにgccを呼び出す場合

ライブラリは独自のnew/delete演算子を使用します。そうでなければ結果

呼び出し側プログラムのnew/delete演算子を使用しているライブラリー内。雇用されたロシア人に感謝します!

0 投票する
3 に答える
485 参照

c++ - C++ メモリ割り当ての質問

配列を作成しようとしています: int HR[32487834]; これは約 128 - 130 メガバイトのメモリしか占有しませんか? MS c++ Visual Studios 2005 SP1 を使用していますが、クラッシュし、スタック オーバーフローが通知されます。

0 投票する
3 に答える
636 参照

c++ - 配列が与えられた場合、それからメモリを割り当てることができるアルゴリズムはありますか?

私はいくつかのグラフィックプログラミングを行っており、頂点プールを使用しています。プールから範囲を割り当てて、これを描画に使用できるようにしたいと思います。

必要なソリューションとCアロケータの違いは、mallocとは呼ばないことです。代わりに、配列を事前に割り当ててから、それをラップして空き領域を追跡し、渡した割り当てから範囲(開始/終了ポインターのペア)を割り当てるオブジェクトが必要です。

どうもありがとう。

0 投票する
15 に答える
95419 参照

c - C で動的に割り当てられたメモリのサイズを決定する

Cで動的に割り当てられたメモリのサイズを調べる方法はありますか?

たとえば、

に関連付けられているメモリのサイズを調べる方法はありpますか?

0 投票する
4 に答える
1219 参照

java - Java メモリ割り当てのパフォーマンス (SunOS と Windows の比較)

多くの文字列を割り当てるだけの非常に単純な単体テストがあります。

私の Windows PC (Intel Core Duo、2.2GHz、2GB) では、平均して次のように表示されます。

SunOS (5.10 Generic_138888-03 sun4v sparc SUNW、SPARC-Enterprise-T5120) の場合:

JDK バージョンは両方のマシンで 1.4.2_18 です。JVM パラメータは同じで、次のとおりです。

SUN スーパーサーバーが遅い理由を説明できる人はいますか?

( http://www.sun.com/servers/coolthreads/t5120/performance.xml )

0 投票する
1 に答える
234 参照

filesystems - NTFS ディスクに割り当てられたブロックを確認する方法

NTFS ディスク上のどのクラスターが割り当てられているかを判断する方法はありますか? デフラグ自体を開始する前に、デフラグ プログラムで表示される表示に沿って考えています。

MFT を解析できると思いますが、何十万ものファイルが存在する可能性のあるシステムでは、これに長い時間がかかる可能性があることに気づきました。

ありがとう

0 投票する
2 に答える
299 参照

c - 行が不明な場合のグリッドの C 動的割り当て

C で char* の配列を割り当てようとしています。列の数は事前にわかっていますが、行はわかっていないため、必要に応じて行を割り当てたいと考えています。

私は使用しようとしました:

さて、上記の行は data[0] に割り当てる必要があります...正しいですか? 次に、次のように行を使用できる必要があります

セグフォルトが発生しています。ここで何が悪いのか理解できません。誰でも助けてください。

0 投票する
7 に答える
3976 参照

c - カスタム malloc() 実装ヘッダーの設計

C で (演習として) デバッグ目的でカスタム アロケーターを作成しようとしています。そこでは、First Fit Algorithm を使用してメモリの空きリストを保持するために単一のリンク リストを使用します。「空のメモリノード」に作成したい構造を以下に示しました。

メモリの最初の数バイトにヘッダー ブロック (具体的には共用体) を書き込むにはどうすればよいですか?

これは私が使用しているユニオンです:

[編集]提供された提案に従ってブロック構造を変更しました。

0 投票する
2 に答える
1340 参照

iphone - MFMailComposeViewController の起動と終了後に iPhone アプリケーションが遅延する

テーブルビューコントローラーを使用していくつかのアイテムを表示するアプリケーションがあります。これらのアイテムの1つをクリックすると、このアイテムを電子メールで送信できます。それが起こったら、アップルの「MailComposer」が提供するコードを使用して、メールを送信します。ただし、この後、テーブル ビューでのスクロールは以前ほどスムーズではありません。

「Leaks」でチェックしたところ、コードにリークはありませんでしたが、MFMailComposeViewController のモーダル ビュー コントローラーを使用すると大量のオブジェクトが割り当てられ、コントローラーを閉じると、そのオブジェクトの割り当てはすべて残っています。オブジェクトの割り当てをすべて取り除くにはどうすればよいですか? どんな助けでも大歓迎です。ありがとうございました。

-オスカー

アップデート:

遅延が発生するのは、MFMailComposeViewController の To: テキストフィールドをクリックして何かを入力した場合のみであることに気付きました。何かを入力すると、メモリ リークが発生し、アプリケーションの動作が遅くなります。これとまったく同じことが、Apple の Mail Composer でも発生します。私はシミュレーターを使用していますが、これが理由でしょうか? 他の誰かが同様の経験をしていますか?

コントローラーを押す方法は次のとおりです。

ここでそれを無視します: