2012-04-21 4 views
0

mm_structのstart_brkとbrk feildはFirefoxと同じ値です。つまり、Firefoxではヒープが空です。誰でも知っているのですか?FirefoxがLinux上に空のヒープを持っているのはなぜですか? mallocはどこに記憶されますか?FirefoxにLinuxで空のヒープがあるのはなぜですか? mallocはどこに記憶されますか?

+1

どのように決定していますか? – Mat

+0

(おそらくオールラウンドのmmapベースのカスタムアロケータを使用しています) – Mat

+0

各プロセスのカーネルモジュールにmm_struct情報を出力します。 –

答えて

2

Firefoxはカスタムメモリアロケータjemallocを使用します。構成中に--enable-dssオプションが指定されていない限り、このアロケータはmmap()のみを使用し、それ以外の場合はsbrk()mmap()の両方を使用します。言うまでもなく、brk()システムコールのみが問題の構造体のstart_brkフィールドとbrkフィールドを変更します。

+0

--enable-dssでFirefoxをコンパイルしましたが、start_brkとbrkの値は同じです。 brkヒープ割り当てを有効にする方法を知っていますか?私が望むのは、jemallocがデータを割り当てるbrk()システムコールを呼び出すことです。これは実行可能ですか?ありがとう! –

+0

何らかの理由で、Firefoxがsys_brk()によってヒープ内のデータを割り当てる必要があります。誰もそれを行う方法を知っていますか? 設定で--enable-dssを設定しましたが、ヒープはまだ空です。 –

+0

を試してください--disable-jemalloc – jesup

関連する問題