37
2010/5/15 Mozilla 勉強会@東京 3rd firefox- 3.6.4 以降のビルドについて by ABE Hiroki aka hATrayflood

Modest04 firefox-3.6.4以降のビルドについて

Embed Size (px)

Citation preview

Page 1: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

firefox-3.6.4以降のビルドについて

by ABE Hi rok i aka h ATrayf lood

Page 2: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

自己紹介・名前:アベヒロキ (hATrayflood)・職業:会社員 → Now Neeting ...・URL:http://rayflood.org/diary/・住所:長野市 地元:東御市

by ABE Hi rok i aka h ATrayf lood

Page 3: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

1. ビルドオプションの追加2. モジュール依存関係の変更3. 最適化オプションとの兼ね合い4. 実際のビルド

by ABE Hi rok i aka h ATrayf lood

Page 4: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

まず、by ABE Hi rok i aka h ATrayf lood

Page 5: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

「プラグインのプロセス分離」の略称「OOPP」は呼びづらいのでここでは「IPC」と呼びます。   

by ABE Hi rok i aka h ATrayf lood

Page 6: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

1. ビルドオプションの追加

by ABE Hi rok i aka h ATrayf lood

Page 7: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

--enable-ipc IPCを有効にする。デフォルト。 オフにするには、--disable-ipc。--enable-libxul (firefox-3.0から) dllとxptをひとまとめにする。デフォルト。 IPCを有効にする場合は必須。

by ABE Hi rok i aka h ATrayf lood

Page 8: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

2. モジュール依存関係

by ABE Hi rok i aka h ATrayf lood

Page 9: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

by ABE Hi rok i aka h ATrayf lood

Page 10: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

by ABE Hi rok i aka h ATrayf lood

Page 11: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

3. 最適化オプションとの兼ね合い

by ABE Hi rok i aka h ATrayf lood

Page 12: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

--enable-optimize コンパイラに/O2などを渡せる。--enable-jemalloc Cランタイムを独自に置き換え。 msvcr80.dll → mozcrt19.dll

by ABE Hi rok i aka h ATrayf lood

Page 13: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

--enable-libxul 前述。ロード時間の短縮。プロファイルガイド付き最適化 ビルド後、実際に実行する。 統計を元に、最適化を実行。

by ABE Hi rok i aka h ATrayf lood

Page 14: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

プロファイルガイド付き最適化(PGO)は大変。

by ABE Hi rok i aka h ATrayf lood

Page 15: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

・所要時間  PGOオフ:約1時間  PGOオン:約3時間  オフに比べて約3倍。

by ABE Hi rok i aka h ATrayf lood

Page 16: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

・メモリ消費  link.exeが最大で1.3GB消費。  OS含めて全体で2GB以上消費。  物理メモリ2GBでも足りない。

by ABE Hi rok i aka h ATrayf lood

Page 17: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

・ディスク消費  PGOオフ:約850MB  PGOオン:約7.6GB  オフに比べて約9倍。

by ABE Hi rok i aka h ATrayf lood

Page 18: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

てか、普通はPGO前のxul.dllのリンクで落ちる。

fatal error C1083: コンパイラの中間生成物 ファイルを開けません。'../../staticlib/components/gklayout.lib': Not enough space

by ABE Hi rok i aka h ATrayf lood

Page 19: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

細工してこれを乗り越えても、

今度はリンカの内部エラー。

by ABE Hi rok i aka h ATrayf lood

Page 20: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

Windows自身に細工する必要があるらしい。C:\boot.ini /3GBbugzilla MDC

by ABE Hi rok i aka h ATrayf lood

Page 21: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

しかし、自分のPCではダメだった。それどころか、Windowsが不安定に。 ビルド機 FMV LOOX R A70N

by ABE Hi rok i aka h ATrayf lood

Page 22: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

環境によっては、/3GBがダメなのかも。 (公式バイナリのビルド機は、Windows Server 2003らしい)

by ABE Hi rok i aka h ATrayf lood

Page 23: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

--enable-ipcかつ--disable-libxulでのビルドも企んでみた。(無謀にも)

by ABE Hi rok i aka h ATrayf lood

Page 24: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

循環参照リンクの罠にハマり、ビルドできても起動時エラー。

by ABE Hi rok i aka h ATrayf lood

Page 25: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

4. 実際のビルド

by ABE Hi rok i aka h ATrayf lood

Page 26: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

PCにもよるが、/3GBがダメな場合は、何らかのオプションを削らざるを得ない。

by ABE Hi rok i aka h ATrayf lood

Page 27: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

多分、以下の2択。・IPCオン + PGOオフ・IPCとlibxulオフ + PGOオン

by ABE Hi rok i aka h ATrayf lood

Page 28: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

自分が持ってるVisual Studioは・2005 Std … PGO不可・2008 Std … PGO可なので、

by ABE Hi rok i aka h ATrayf lood

Page 29: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

2005:IPCオン + PGOオフ2008:IPCとlibxulオフ + PGOオンの構成でビルドすることに。

by ABE Hi rok i aka h ATrayf lood

Page 30: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

結論: IPCかつフル最適化は 環境を選ぶ。

by ABE Hi rok i aka h ATrayf lood

Page 31: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

ところで、by ABE Hi rok i aka h ATrayf lood

Page 32: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

Visual Studio 2010はどうなった?

by ABE Hi rok i aka h ATrayf lood

Page 33: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

試してみた。・巨大libが読めないエラーは克服。・PGO後の内部エラーも克服。・link.exeのメモリ消費もやや改善。

by ABE Hi rok i aka h ATrayf lood

Page 34: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

しかし、jemalloc未対応。

by ABE Hi rok i aka h ATrayf lood

Page 35: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

なので、VS2010でもまだ制約あり。・IPCとPGOオン + jemallocオフ ただし、これは近いうちに可能になると予想。

by ABE Hi rok i aka h ATrayf lood

Page 36: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

ふぉくす子のイラストお借りしました。多謝。http://piro.sakura.ne.jp/pics/_col.html#y2006

by ABE Hi rok i aka h ATrayf lood

Page 37: Modest04 firefox-3.6.4以降のビルドについて

2010/5/15 Mozi l l a 勉 強会@東京 3rd

・リンク集Bug 543034 - Windows builder failing, with nsannotationservice.cpp(457) : "fatal error C1001: An internal error has occurred in the compiler" or "fatal error C1002: compiler is out of heap space in pass 2"https://bugzilla.mozilla.org/show_bug.cgi?id=543034Building with Profile-Guided Optimizationhttps://developer.mozilla.org/en/Building_with_Profile-Guided_OptimizationFMV LOOX R A70Nhttp://www.fmworld.net/fmv/pcpm0804/biblo_loox/lr/index.html

by ABE Hi rok i aka h ATrayf lood