問題タブ [hoard]
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.
c++ - 買いだめアロケーターが「機能していません」?
アロケーターを動作させようとしていますが、そうではないようです。多くの動的メモリ管理を行うベンチマーク アプリケーションがあります。Hoard と glibc メモリ マネージャーの実行時間は同じです。自分が正しいことをしているのだろうかと考えさせられます。
私がすることは...
Hoard アロケーターにリンクする必要はありませんか? (LD_PRELOAD 内の) パスが何であるかは重要ですか、または任意のパスを使用できますか?
Ubuntu 8.04 と g++ 4.2.4 を実行しています
乾杯
Hoard が適切にロードされているかどうかを確認するための Linux コマンド (grep など) を知っている人は誰もいません。また、実際のアロケーターが使用されていますか?
c - スタティック リンク ホード メモリ アロケータ
Linuxでlibhoardを静的ライブラリとしてリンクする方法に関するドキュメントを知っている人はいますか?
c++ - 買いだめC++クラッシュ
WindowsとMacOSX(Leopard、Snow Leopard)の両方で実行されるマルチスレッドアプリケーションでHoardを評価しようとしています。
サードパーティのライブラリとして、Boost、Curl、libJpeg、log4cplusplusを使用しています。現在、すべてのモジュールをlibhoard.dylibにリンクしていますが、サードパーティのライブラリはシステムmallocを使用するようにしています。
それは衝突を引き起こしますか?
info.plist DYLD_INSERT_LIBRARIES = libhoard.dylib(LD_PRELOADと同等であると想定)で設定してアプリケーション全体で使用しようとしましたが、mallocトレースではhoardが取得されていません。
サードパーティのライブラリでも使用できるようにリンクして使用する他の方法はありますか?ご意見をお聞かせください。
ありがとう、ラジャ。
c++ - C++ メモリ アロケータ アーキテクチャ
Linux で C++ 用の Hoard アロケータを作成する必要があります。アルゴリズムは非常に単純ですが、アロケーターデータ (ヒープなど) をどこに (どのように) 格納するかわかりません
それが私の見方です。アロケーターはプロセスではなく、どのアプリケーションでも使用できる関数のセットです。すべてのアプリには独自のヒープがあります。
- アプリの起動時、何が起こっていますか?
- また、ヒープが既に作成されていることをアロケータがどのように検出するのでしょうか?
- アロケーターが (アプリを閉じるときに) ヒープを作成、保存、および破棄する方法は?
- 関数が呼び出されたとき、それがどのスレッド (またはどのプロセッサ) で実行されているかを調べる方法は?
memory-management - 基本的なメモリ アロケータ情報が必要 - 買いだめと SLAB
最近、Hoard や SLAB などのメモリ アロケータについて読んでいます。しかし、私はいくつかのものを手に入れませんでした:
a. これらのアロケータは、物理メモリまたは仮想メモリを管理していますか。{If (あなたの答えが物理メモリである場合) ポイント b を読んでください。それ以外の場合はポイント c を読んでください}
b. 物理メモリを管理する場合、これらのアロクターは両方とも CPU ごとのデータ構造を使用するため、同じ物理ページから別のプロセスにスペースを与えることになりませんか。たとえば、T1 が CPU C で開始し、int を要求するとします。この後、T1 がプリエンプトされ、T2 が実行を開始し、int も要求します。私たちの構造は CPU ごとであるため、同じ物理ページからの両方の要求を満たすことになるわけではありません。
c. また、仮想メモリを管理する場合、すべてのデータ構造が CPU ごとであると言うのではなく、プロセスごとであると言うべきです。コンテキスト スイッチごとに、これらのデータ構造を再設定する必要があるからです。
c - 大きなサイズのチャンクを割り当てると、ホードのパフォーマンスが大幅に低下する
私は以下のサンプル プログラムを 'C' で作成しましたが、これは動的メモリを集中的に使用し、'glibc' デフォルト アロケータと Hoard アロケータで同じ (所要時間に関して) ベンチマークを試みました。
このベンチマーク アクティビティの結果、以下の結果が得られました (ブロック サイズ、デフォルト アロケーターの経過時間、Hoard の経過時間)。
- 「1K」「4.380s」「0.927s」
- 「2k」「8.390s」「0.960s」
- 「4k」「16.757s」「1.078s」
- 「8k」「16.619s」「1.154s」
- '16k' '17.028s' '13m 6.463s'
- '32k' '17.755s' '5m 45.039s'
ご覧のとおり、ブロック サイズが 16K 以上になると、Hoard のパフォーマンスが大幅に低下します。理由は何ですか?Hoard は、大きなサイズのチャンクを割り当てるアプリケーション向けではないと言えますか?