Firefoxのマルチプロセス化プロジェクト「Content Process」 85
タレコミ by Anonymous Coward
あるAnonymous Coward 曰く、
Mozillaは新しくFirefoxのマルチプロセス化プロジェクト「Content Process」の存在を明らかにした(本家/.・@ITより)。
マルチプロセスはChromeやIE8でも実装されているが、タブの一つがクラッシュしてもセッション全体がダウンすることはないという利点があり、マルチコアシステムの普及によってパフォーマンスの向上が見込めるという。また、メモリリークにより動作が重くなっていくというFirefoxの問題の解決にもなるのではないかとも言われている。
ロードマップによるとフェーズ1として今年7月には単一タブのみ(セッションサポート無し)のURL入力+ページ表示機能をもった最低限のウィンドウを開発する計画とのこと。開発フェーズは4段階挙げられているが、最終的なタイムラインはまだ見えないとのことだ。
「Content Process」は長年に渡ってMozillaに貢献してきたBenjamin Smedberg;が率いており、コア・チームにはJoe Drew氏、Jason Duell氏、Ben Turner氏やBoris Zbarsky氏が参加している。
なぜ自動翻訳は使い物にならないのか? (スコア:2)
なんでも評点
なぜ自動翻訳は使い物にならないのか? — 翻訳を生業とする立場と経験から分析してみる
http://rate.livedoor.biz/archives/50713998.html [livedoor.biz]
Re: (スコア:0)
Chromeからコンテンツへのアクセスはどうなる? (スコア:1, 参考になる)
タブ一つ一つが別プロセスになると、chrome(GoogleChromeのことではなく、FirefoxのUI部分)からタブ内のコンテンツへのアクセス方法が変わるかと思いいます。
拡張機能が豊富にあるのがFirefoxの特徴ともいえるかと思いますが、その拡張に多大な影響がありそう。有名どころでGreasemonkeyなんかに影響がありそうですね。
変な制限(読み取り専用になってしまい、更新ができないとか)がかかって拡張製作者、ユーザから不満が揚がらなければ良いのですが...
Re: (スコア:0)
わざわざそんな変な制限付けるわけないじゃん。
別プロセス化を特別視しすぎじゃないの?
Re:Chromeからコンテンツへのアクセスはどうなる? (スコア:2, 興味深い)
でも漏れなくプロセス間通信でデータを(安全を守りつつ)やりとりするのは、なかなか大変だろうなぁ。
# Google Chromeはこの辺は割切ってる気がする...
M-FalconSky (暑いか寒い)
落ちなければ (スコア:1)
シングルプロセスでも落ちなければどうということはない!
というか今時そんなにブラウザが落ちたりしませんし、タブの復元もありますよね。
そこまでする必要あるんでしょうか。
管理プロセスが落ちれば全部落ちざるを得ませんし。
Google Chromeは使ってないのですが、使ってる人は恩恵を感じてますか?
Re:落ちなければ (スコア:2, 参考になる)
Re:落ちなければ (スコア:2, 参考になる)
Linux版 Fxはよく落ちますよ [srad.jp]
タブ復元も、正常終了しなかったときはクラッシュ時以前のタブセットが復元されたりしますしね。 不安定なプラグインを使っている環境ではマルチプロセス化は大いに期待できるものだと考えています。
もちろん管理プロセスはシンプルかつ堅牢に設計するでしょうし。
Re:落ちなければ (スコア:1, 参考になる)
nspluginwrapper [beauchesne.info]のようなものを標準搭載しておけば、プラグインがクラッシュしてもブラウザ本体まで道連れにされることはなくなるね。Google Chromeもプラグインの仕様には困ってるみたい。
Re:落ちなければ (スコア:2, すばらしい洞察)
別プロセスで動くブラウザってのを使った事がないので実際のところはどうなのか分かりませんが、例えばあるタブのフラッシュがもの凄く重たくて処理が止まったようになる事があったとき、現状のFxだと他のタブでも止まるけど、別プロセスで動いていれば他のタブは多少重たくはあっても普通に使えるようになるのかなぁと思ってます。
もちろん、作り方次第でマルチスレッドでもどうとでもなる問題なのかもしれないし、別プロセスで動くようになっても諸々の情報の共有の仕方によっては現状と変わらないのかもしれないけど。
Re:落ちなければ (スコア:1)
今時そんなに・・・まぁね。
しかしfirefox、特定のサイト(WiredVision:http://wiredvision.jp/ [wiredvision.jp]とか)でBack操作すると結構な確率(必ずではないが1日数回)で落ちるんだなー。これが職場の最新マルチコアな環境では落ちるが、自宅の昔ながらのシングルコアな環境では落ちないのでスレッドの同期周りのバグかという気もしないではない。が、再現性が微妙で再現する最小条件がいまだに確定しない。プラグインとか全部止めて順番に戻したりみたりはしてみるものの同じ条件でも落ちたり落ちなかったりで・・・。クラッシュのレポートは送ってるけどね。
Re: (スコア:0)
Mozillaものは他のブラウザより落ちる頻度多いよ。どんどんメモリを食っていって(メモリリーク潰せてないからね)何かの拍子で死ぬ。ちなみにWindows版はまだいい方でLinux版はもっとパフォーマンスが悪くなる。まあセッションマネージメントがあるのが救いだけどな。
Re:落ちなければ (スコア:1)
>MacOSX版は一日に一度くらいのペースでアップルキー+Qで殺せない程度の無反応になります。プラグインは入れていません。
気がつけば何日も起動しっぱなしな事もあります。
たまに巨大なページで無反応(タブを閉じれない)になる事もあるけど、メニュー(Fx本体?)
は生きているのでウィンドウを閉じて開き直せばそのまま使える事がほとんどです。
10.3.9+Fx2なので参考にはならないかもしれませんが。
プラグインはQuickTime/Flash/Java/Flip4Macなど基本的な物を入れてるぐらい。
アドオンはそれなりに。
Re: (スコア:0)
Fxは起動時のタブの復元でよく落ちる。
あと、立ち上げたままにしておくとメモリとCPUを消費して重たくなるね。
特に動画再生しているとか、重たいことしているわけでもないのに
CPU負荷率が高くなる。
Chromeは安定しているけど、タブを沢山開くとデュアルコアでは処理がつらくなることがある。
そんな時は反応が鈍いのでタブの切り替えをやるとタブを別ウインドーに独立させたり
閉じたりの操作ミスを誘発させる。
あとDLの履歴が明示的に消せなくて大量にDLしていると全体巻き込んでやがて落ちる。
Re: (スコア:0)
そりゃ、そうだけど、現実にブラウザが落ちるのはプラグインのせいだったりするわけで、
あったほうがいいのは間違いない。
Re: (スコア:0)
つーか、そこが安定していないブラウザは話にもならんだろJK
Phoenix, Minotaur以来の大変革ですかね (スコア:0)
まあ劇的な軽量化に関しては全く期待してませんけど(歴史がそれを証明しているからね)
プロセス vs スレッド (スコア:0)
Re:プロセス vs スレッド (スコア:1, 参考になる)
ソースの中で
が宣言されているクラス(たとえば画像のデコーダ)はスレッド化されて動いています。
Re:プロセス vs スレッド (スコア:2, 参考になる)
デュアルコアCPUのPCで、16タブを一気に開くと
片コアだけCPU使用率100%になります。
Re:プロセス vs スレッド (スコア:1, 参考になる)
これをスレッドで実現させることは、ちょっと無理があるんじゃないかな。
それとプロセスの場合、OSにいろいろ任せることが出来るので、アプリそのものをシンプルにしやすい。
#OSが十分に賢いことが前提としてあるけど
Re:プロセス vs スレッド (スコア:1)
実装方法にも依りますが、スレッドというのは同じプロセス空間を共有しあうタスクです。
なので、マルチスレッドプログラムの場合、一つのスレッドがおかしくなると、同一プロセス空間に存在する他のスレッドが影響を受けます。
マルチプロセスプログラムの場合、一つのプロセスがおかしくなっても他のプロセスは影響を受けません。
これが「タブの一つがクラッシュしてもセッション全体がダウンすることはないという利点」というわけです。
このため、今回の目的はマルチスレッドモデルでは達成できません。
スレッドやプロセスの取り扱いについてはいろいろあるので、もし興味があるのならばいろいろ論文等を漁るとおもしろいでしょう。
或いは各OSにおけるスレッド/プロセスの取り扱いについて調べるのもおもしろいかと。(少しかじった範囲だと、BSDやLinuxがマルチプロセッサ・マルチコア環境で、スケジューラにスレッド/プロセスをどのように扱わせるかいろいろやっていたみたいですね。)
ここは自由の殿堂だ。床につばを吐こうが猫を海賊呼ばわりしようが自由だ。- A.バートラム・チャンドラー 銀河辺境シリーズより
Re: (スコア:0)
「リソースを共有していること」がスレッドの定義だから、一部のスレッドが落ちれば
リソースを共有している他のスレッドが影響を受けないわけないかと。
(アプリ側でイロイロと工夫すればなんとかなるかもしれんが、ヒジョーにキビシー。)
まあ逆にプロセスはプロセスで、リソースを共有していないので多数のプロセスを起動
すると重くなるもんなんだが。そこはハード進歩による富豪的プログラミングと、OSの
進歩でカバーできれば嬉しいなあということでは。
単純な疑問 (スコア:0)
何ででしたっけ
Re:単純な疑問 (スコア:1)
本当にFirefoxってメモリリークしてるんでしょうか? 何か参考になる文献があれば教えてください。
Re: (スコア:0)
プロセス終了時にOSが開放してくれるからぢゃないの?
プログラマ「もうね、リークとかわけかんね。調査するのもまんどくせ。だから、OSに丸投げするお」って感じだと思うwww
お前、本当にそれでいいのか、と。。。
Re:単純な疑問 (スコア:1)
セキュリティ面でもプロセスに分離させたほうが有利だし、いいんじゃない?
Re: (スコア:0)
Re: (スコア:0)
いいんじゃない?
そもそもプロセスってそういう目的でもあるし。
システム保護の観点からは、スレッドの方が時代に逆行しているって意見もあったし。
マルチプロセスプログラミングが主流に回帰した次には、
リソース仮想化環境付のスレッドでも登場するんでないかな。
# そして時代は繰り返した
Re: (スコア:0)
なんというか「ハッカー」と言うものはもうこの世にはいないのかな。
Re: (スコア:0)
ああ、所有権管理するスマートポインタさえあれば全部OKと思ってる人?
Re: (スコア:0)
プロセスってシステムを発明したのさ。
…って事でよ、メモリリークを潰すのに血道をあげてる時間があったら、
別のことをしてる方が楽しいんでないの?
メモリリークを潰す方が楽しかったら、メモリリークを潰してるに決まってんじゃん。
Re: (スコア:0)
想像するにソースコードとかもすげー事になってそうだなぁ。
メモリリークなんてその気になりゃつぶせるとは思うが、
コスト考えるとメンドクさ、とかなんじゃねーの?
Re:単純な疑問 (スコア:2, 興味深い)
堅牢なソフトウェアよりも拙速なソフトウェアのほうが、ありがたがられるんだよね。
かつてはセキュアであることも後回しにされた。
メモリリークは後回しにしても、あまり問題がない。
たとえばユーザー各人がメモリリーク対策としてメモリを1GBほど多目に積むコストは、地球全体では莫大で、メモリリークをなくすためのコストより遥かに高いだろうけど、
しかし、その1GBのメモリ代をプロジェクトに払ってくれればメモリリークをなくしますよと言っても、払う人はとても少ないと思う。
ゆえに、ユーザーにメモリを買ってもらえばいいじゃんで、片付いてしまう。
Re: (スコア:0)
>ゆえに、ユーザーにメモリを買ってもらえばいいじゃんで、片付いてしまう。
よしわかったメモリなら買うから公式のWindows64bit版バイナリを出してくれ
ちゃんとMozillaProjectでコード署名もしてくれよ
Re: (スコア:0)
仕事で使うので公式ビルドが必要なら、金だして頼め。
Re: (スコア:0)
俺は#1562114 [srad.jp]や#1562237 [srad.jp]の意見に近いけど、結構反発しているやつが多いのな。つーかここはまだましだけど、2chとかパフォーマンスの悪さを指摘する意見に対してハイパワーなマシン買えよとか低脳な反応してくる馬鹿が多くて困るよ、Firefox信者は。他のブラウザ使いでこんな反応する連中はまず見かけない。
まあマルチプロセス化自体には総論賛成だけど、ことメモ
Re: (スコア:0)
すまんね、自分は低脳で馬鹿なので。
Firefox重いなぁって思っても、まず我慢しちゃう。
我慢しきれなかったら、
まず、他のブラウザに乗り換えることを検討する
次に、ハイパワーなマシンに買い替えることを検討する
そして、Firefoxのソースを読んで手直しするのに要する時間を考えて、ハイパワーなマシンを買うことを決定する
オープンソースのソフトなんだから、文句は言っちゃいけないと思うんだわ。
文句があるなら自分で直せっていうのが基本中の基本だと思うから。
最近/.Jにも、何様のつもり? って言いたくなるような消費者が迷いこんでくるので、ちょっと迷惑
Re:単純な疑問 (スコア:2)
>文句があるなら自分で直せっていうのが基本中の基本だと思うから。
>最近/.Jにも、何様のつもり? って言いたくなるような消費者が迷いこんでくるので、ちょっと迷惑
FireFoxコミュニティが大々的な宣伝を行ってシェアを延ばそうとしてるんですよね?
IEに追いつけ追い越せとばかりに。
「オープンソースなので文句があるなら自分で直してください。
それができないようなプログラマーでもない人は使わないでください」
とか言ってるのはあなただけではないですか?
マルチタスク (スコア:0)
WindowsはマルチタスクOSなのでFirefox.exeを沢山実行することはできるよ。
何がどう違うの?
Re:マルチタスク (スコア:3, 参考になる)
という部分で気づいてほしいところですが、Firefoxが複数起動するというより、Firefoxの中のタブ一つ一つが別プロセスで動くと思ってください。実際にはFirefox.nextでコンテンツとクロームのプロセスを分離 - Mozilla Flux [hatena.ne.jp]に
とあるように、タブ一つ一つではないかもしれませんが。
あと、つまらないツッコミですがFirefox.exeじゃなくてfirefox.exeですね。
Re:マルチタスク (スコア:1)
タスクマネージャのプロセスのタブを見てみてください。firefox.exeは、ひとつしかないはずです。
Re:マルチタスク (スコア:1, 参考になる)
Re: (スコア:0)
だから、どこかのタブがコケただけですべてのウィンドウが巻き添えになるというのもポイントですね。マルチプロセス化すれば、影響を受けるのはそのタブだけで済みます。
Mozilla Suiteの時代はそれに加えてメーラーまで巻き添え食らっていましたからもう大変。
Re: (スコア:0)
その書き方でいくと、一つひとつのタブがFirefox.exeなんでしょうね。
これまでのFirefoxだと沢山実行すると沢山ウインドウが出てたでしょ。
一つのウインドウの中に沢山のタブとなるFirefox.exeが実行されてて、
タブのひとつがクラッシュしても大元のウインドウはクラッシュせずに済む
(他のタブへの影響が少ない)、と。
こんな感じかな?
#自身ないのでACでw
Re: (スコア:0)
これって、OSとアプリケーションの関係のように見えます。要するに、大元FirefoxというOSを作って、その下でfirefox.exeというブラウザを立ち上げるような感じでしょうか?
Re:マルチタスク (スコア:2, 参考になる)
Windowsだと分かりにくいかもしれませんが, LinuxとかならXというプログラムをkillすれば, 大概のプログラムは一まとめにクラッシュします.
実際のところ今から10数年以上前のXはメモリリークがひどくて数日毎に立ち上げなおさないとメモリを食いつぶしてクラッシュするという有様でした. そのため, 数ヶ月以上立ち上げっぱなしなんていうプロセス監視用途ではXを使ったインターフェイスは実用にならなかったり.
なんで二重にしないんだ? (スコア:0)
>単一タブのみ(セッションサポート無し)
タブの論理的な構成を二重にすればいいのに。
(論理的に)下のほうのタブ構造は、従来どおり、
シングルタスク内でセッション共有する1つ以上のタブの集合。
それの上に、マルチタスクでセッション非共有なタブの集合、という枠を被せればいい。
そのままGUIに反映する必要が有るかどうかは微妙だが、仮に反映させたとすると、
「タブのなかに入れ子タブがある」ような外見になるだろう。
(個人的には内部の仕組みを素直に外観に反映した上記のようなものを好む。)
なんかみんな、「タブ(ブラウザ)」の形そのものを改良しようとする意欲が無いね。
既に今のようなタブブラウザの形態をずっと続けることは規定事項だと見なしてる節を感じる。
Mozillaも、MSも、みんな、ね。
#昔Palm用Webブラウザ(PalmScapeだったか)で、タブにDropDownListが付いてるというUIを見て、新規さと便利さに感動したのでAC
蛇足になるが今の窓型のGUI全般にはまだまだ改良の余地が有ると思っている。
* MDIみたいなことをやるなら、いっそ窓の入れ子を1段じゃなく任意段でできるようにする。
* 入れ子構造の着脱をユーザがマウス操作一発でできるようにする。アプリレベルで独自にやってる奴も既にあるが、そうじゃなくOSレベルで。
* ウインドウの「フルスクリーン」をするターゲットというか、つまりデスクトップを、変形可能にする。(これは上記の入れ子着脱で代用できるから不要かもしらんが)
などなど。
Re: (スコア:0)
シングルタスクとマルチタスクで走るものを
どっちでも動くようにするような下地が必要になるから
下地は作り直しに近い修正が必要になるんじゃないかな。
メモリリーク解析ソフト屋さん、宣伝のチャンスです (スコア:0)
なんていう広告を出したら面白いのに。