ブラウザシェル

社長:さあ2日目、始めましょうか。

基盤:その前に。せっかくなので Chromium でもやってみたら良いと思います。以前MacMiniでは、ストレージ不足でのやり直しもあって、ビルドに1日単位を要しましたが、iMacでやったらどうなるか見たいというのもあります。

社長:そうですね。

MyChromiumビルド

基盤:それで早速、以前のブログにしたがってやろうと思ったのですが、いきなりXcodeが無いと。で検索したら、Xcode 12 Betaはいかがですかと来ています。Chromiumの要件は11.2以上ということではあるのですが...

開発:どうもUI系の改良版みたいですね。とりあえず11にしましょうよ。11.6がJul 15, 2020 に出てますし。

基盤:了解。では Mac App Store よりダウンロード... え?何かiMac方面から怪音が... どうも全コア全開動作するとファンが唸り出すようです...

社長:大ショック... この人はモニタと一体型だから、分離して身体だけ左遷できないんですよね...

一同:(落胆)

基盤:まあもう少し様子をみましょう。Xcodeがインストールされました。10分以上かかりましたかね。

基盤:で depot_tools を git clone。一瞬でした。

基盤:でもって fetch chromium... しまった、これ --no-history をつけないと大変なんですかね。やり直し。30分くらいかかるよと言われてます。前回もそうだったような。おっと、ダウンロード74.7MB/s、かつて見たことのないスピードです(当社比)

開発:ああまた、iMacのファン音が大変なことに...

基盤:台所のファンとか咳き込みおばさんに比べれば音の質は辛くは無いですけどね。おっと、騒音の甲斐あってか、10分で終了しました。

基盤:ではオススメどおりにargs.gnを書いて。 autoninja 起動。おそらく数時間はかかるでしょうね…

開発:これから数時間もこのスコール状態が続くんですかね?

社長:岩に染み入る蝉の声的な。

基盤:それにしても、フル活動ですね。

基盤:CPUは全開。

基盤:メモリは楽勝。

基盤:ディスクI/Oもスカスカ。

基盤:もう45000のうちの16000行きました。このペースで行けば、2時間かからないですね。Firefoxのビルドと同程度かも知れません。

開発:以前やった時は、途中からすごく遅くなったような。あれはMacMiniのビルド環境のせいだったんですかね?

基盤:半分を通過しました。ここまで所要40分。

社長:食事しているうちに終わるかもですね。タバコも切れたし、メシに行きましょう。

社長:ところでこのシケモク、根っこの部分がコーヒーをかぶって湿ってるんですが、もしやそのせいか、シケモク臭さが感じられません。

開発:ITS more社が提案する新しいスモーキングスタイル。

* * *

社長:ただいま帰ったぞなもし。あれ?静かですね。iMacのモニタ真っ暗だし。ビルド終わりましたかね。

基盤:まだまだですね。1時間で1万ファイル進行。後半に入って1秒に1〜2ファイルというのが前回MacMiniと同じようです。あと1万2千ですから、1時半頃には上がるかと。

開発:でも、このくらいのファン音ならacceptableですね。空港のロビー以下的なw

社長:なんでさっきはしゃかりきに回ってたんですかね。冷却効果を学習してなくて過剰防衛?

基盤:ひょっとしたらバックライトのせいかもですね。思い切り暗くしましょう。どうせ画面共有で見てるから関係ないし。

社長:それで、当社の住環境完全の一環としてこれを購入して来ました。アース渦巻〜!

開発:日本の夏。アロマティック。

基盤:金鳥じゃないんですね。

社長:金鳥のは高かったのです。

経理:なんでこう線香の匂いなんですかね。いろんな香りの蚊取り線香を作れば良いと思うのに。

* * *

基盤:ふぁぁぁあ。あ。

開発:蚊取り線香を感じながらお昼寝から目覚める。日本の夏休みですねえ。

経理:うちって夏休みあるんですかね。

社長:休みたい人は休みたいだけとって下さい。

基盤:さて、iMacも淡々とビルドを消化、残り5000/45000となりました。

開発:ビルド始めてから一度もスワップイン・アウトしてないですね。

基盤:純正でバカ高でしたけど、8GBプラスしておいたのは正解だったと思います。

社長:7月12日の流血事故から17日、かさぶたが完全に取れました。一度もうんだりせず、極めて良好な経過でした。

経理:クルマやさんから電話で、代車が用意できたので車検に出しに来て下さいと。

社長:昔はなんとも思わなかったですが、車検代って高いですね。というか車の維持費。最近では週に2回くらいしか乗らないのに。

経理:もろもろ込みで、月1.5万円くらいかかりますよね。

社長:まあタクシーよりは安いかなというくらいな。

開発:濡れ落ち葉マークは70歳からだそうで。まだだいぶ先ですね。

基盤:あれ、70歳前につけたらいけないんですかね。なかなかの脅し効果があると思うんですが。

基盤:あ、コンパイル終了。着陸姿勢に入りました。

社長:ファンが止まりましたね。

開発:ライブラリのビルドって並列化しないんですかね?

基盤:できそうですけどね。あんまりかからないから気にしないのかな?

基盤:動的ライブラリに入りました。最終段ですね。

基盤:完了。Chromeビルド、所用3時間36分でした。ただ実はこれ、省エネルギーモードで、ディスプレイがオフになるとコンピュータもスリープするという設定になっていたので、食事に行っている間は寝てたのかも知れません。

開発:やらせといてる仕事があるのに、ユーザが目を離したら寝てしまうかも知れないって、よくわからない設定機能ですよね。

基盤:以前ならスリープ機能とか速攻で無効にしてたところですが、最近省エネに目覚めてしまいまして。

経理:そういえば、でんこちゃんの家計簿、パスワードリセットしてログインできました。

開発:2014/06/29 が最終ログイン…

社長:で、ここでもう一発ビルド開始するとどうなりますかね?

基盤:変更なしを認識するのに12.8秒ですね。

基盤:最終的なファイル数 69万9千、119GBとなりました。

社長:コンパイル中は全コア使い切りでCPUで律速のようですから、もっとコアの数に反比例した所要時間になりそうですね。

開発:まあ、ゼロからクリーンにビルドすることはあまり無いでしょうけどね。

基盤:全部のコードが参照しているヘッダとか変えたら、そういう事態になるんでしょうね…

* * *

基盤:では起動します。

開発:一回目って時間がかかるんですよね。

基盤:一分かかりましたね。では一旦終了、2回め。

基盤:4秒弱ですね。

開発:これなら使い物になるかな。

開発:どうして日付を明らかにしないんでしょうね…

基盤:それにしても、例えばこのページの印刷プレビュー状態にするのに15秒かかります。他のブラウザなら数秒以内なんですが…

社長:ともかく、準備完了ですね。一休みしましょう。

* * *

基盤:ところでこないだiMacを進水した時に試しにParallels Desktopを入れてみたのですが、なかなか使えそうに思いました。いくらなら買いですか?

開発:そう… 買い切りなら2万円、サブスクリプションなら月600円くらいですかね。

基盤:parallels desktop 価格で検索… アマゾンで¥7,918です。

開発:買いましょう。

社長:うちはWindows Home実機が無いので、試験用にVMで動かすのも良いかもですね。

基盤:ただし買い切り版(Standard Edition)は仮想RAM8GB、仮想CPU4という制約があります。上のグレードですと、1万円/年。

開発:やや高めですが、常識的な価格設定ですね。

基盤:実は、以前購入したICカードリーダ、ドライバがWindows版しか無いのです。あれが使えるようなら、確定したいと思います。

MyChromium改変

開発:さてさて、ちょっといじってみましょう。まずは、about から。

開発:なのでこれをちょっといじってビルドして起動。

基盤:OK。

社長:HTTPのUser-Agentに目印を入れたいですね。

開発:さて、どこに定義されているのでしょうね。流石に120GBの中からバカ検索するのは時間がかかります… うーん、grep て60MB/sくらいしか出なそうですね。これだと20分以上かかってしまいます。fgrep でやり直し… あまり変わらない… せめてファイル名の拡張子で当たりがつくと良いのですが…

開発:ついでに昨日のpoll()にフックをかける作戦なので poll も検索します。並列に検索するのにSSDだとありがたいですね。…

基盤:それもデバッガで止めて見たほうが早いのでは。

開発:あ… そういえば、MacOSX版 dbx の lldb というのがありましたね。ps | grep chromium ...

開発:どれだろう?これあたりかな。sudo lldb -p ... ^C … なんか応答が無いですね。単に遅いのかな。その点デバッグモードでもさくさくのARM の CoreSightはよく出来てました。lldb から直接起動してみましょう… runして。このへんで ^C。

開発:ContentMainRunnerってのがFirefoxのと似てますね。cont して。あ、ウィンドウが開いた。^Cしてbt。うーん、… bt が帰ってこない。

開発:あれ?lldbの出力に content_main_runner_imple.ccってありますね。content/app/content_main_runner_impl.ccのことのようです。ふーん…

社長:ちょっと休憩しましょう。クルマ屋さんに車検に出してきます。

* * *

社長:代車はGolfでございました。昔同じ型のに乗ってたことがあるのですが、あれとまったく同じ匂いがするのが面白いです。

開発:その間に find grepが暴走して、こんな面白いものが出来ていました。

開発:新品のSSDの寿命が縮んでしまいました。

社長:1.75TBの検索結果ってのはすごいですね(笑)

開発:要は検索の出力を検索し続けたということかと思います。120GBの検索とは言え、あまりに時間がかかるとは思いました。