« 2009年1月20日

2009年1月21日の投稿

2009年2月2日 »

Firefox 3.1のWeb Workersでマルチスレッド・プログラミング

Firefox 3.1で追加されるJavascriptマルチスレッドプログラミングできるWeb Workersですが、ちょっと遊んでみました。

Chromeが発表されてからJavascriptを実行する環境が速くなって来ましたが、致命的な問題がありました。それはJavascriptではマルチスレッドで実行できないことです。

PCのCPUが、コア数を2→4と順調に増やしています。にも関わらずシングルスレッドしか動作しないJavascriptプラットフォームは、時代に取り残されてしまいます。この問題の解決策のひとつがWeb Workersです。

能書きをおいておいて、とりあえずWeb Workersを用いたサンプルを作成してみました。以前作成したコッホ曲線を描くJavascriptベンチをWeb Workersに対応してみました。

試す前にFirefox 3.1 beta 2をダウンロードしてください。作成したサンプルはFirefox 3.1以外正常に動作しないと思われます。ついでにFirefox 3.1 beta 2を起動するときに注意点として、別のFirefoxのバージョンを全て落としてから起動してください。これを行わないと、Firefox 3.1 beta 2のアイコンをダブルクリックしても、既に起動しているFirefoxのバージョンを起動します。"ヘルプ"→"Mozilla Firefoxについて"で今起動しているバージョンを確認できます。

Firefox 3.1起動後に、「Koch Curve: JavaScript Benchmark with Web Workers」にアクセスして「Start(Web Workers)」を押してください。コッホ曲線を少しずつ描いてくれます。

Web Workersを用いない例として「Start(Normal)」を押してください。この場合一気にコッホ曲線を書き上げてしまいます。

Web Workers版もNormal版もCanvasを用いてコッホ曲線を少しずつ描いています。ですが、Normal版はスレッドの概念がないため、長い計算にずっと持っていかれてしまいます。このため、描画を一気に行われます。

ですが、Web Workersを用いると描画を担当するスレッドに定期的に戻ってくるため、期待していた少しずつ描くを実践してくれます(遅いですが)。

このため、両者では同じようなこと(完全に同一ではないですが)をしているにも関わらず表示内容が違ってきます。

ついでに、Web Workersに対応したコッホ曲線を描くソースは、「ソース置き場」のjavascriptbench_koch_0.1.2.zipにあります。

Javascriptをマルチスレッドで動かすことができれば用途が大きく開かれると思います。例えば、サイトからデータをダウンロードするのにも、複数スレッドで実行すればそれだけ時間を短縮できますし、重い計算をさせながらユーザの応答に迅速に答えることも可能です。このため、Web Workersの様な仕組みが今後広がることを期待しています。

また、Javascriptのマルチスレッド環境はWeb WorkersだけでなくGoogleが開発したGearsのWorkerPoolも、同じようなことができるはずです。時間が作って今回作成したスクリプトをGears化を試みたいと思います。

櫻吉 清(さくらきち きよし)

« 2009年1月20日

2009年1月21日の投稿

2009年2月2日 »

» このブログのTOP

» オルタナティブ・ブログTOP



プロフィール

櫻吉 清

櫻吉 清

IT業界ウオッチを趣味としている。知的好奇心の趣くままに何でもチャレンジして、とりあえず壁にぶつかってみる。

詳しいプロフィール

Special

- PR -
カレンダー
2013年4月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
kichi
Special オルタナトーク

仕事が嫌になった時、どう立ち直ったのですか?

カテゴリー
エンタープライズ・ピックアップ

news094.gif 顧客に“ワォ!”という体験を提供――ザッポスに学ぶ企業文化の確立
単に商品を届けるだけでなく、サービスを通じて“ワォ!”という驚きの体験を届けることを目指している。ザッポスのWebサイトには、顧客からの感謝と賞賛があふれており、きわめて高い顧客満足を実現している。(12/17)

news094.gif ちょっとした対話が成長を助ける――上司と部下が話すとき互いに学び合う
上司や先輩の背中を見て、仕事を学べ――。このように言う人がいるが、実際どのようにして学べばいいのだろうか。よく分からない人に、3つの事例を紹介しよう。(12/11)

news094.gif 悩んだときの、自己啓発書の触れ方
「自己啓発書は説教臭いから嫌い」という人もいるだろう。でも読めば元気になる本もあるので、一方的に否定するのはもったいない。今回は、悩んだときの自己啓発書の読み方を紹介しよう。(12/5)

news094.gif 考えるべきは得意なものは何かではなく、お客さまが高く評価するものは何か
自社製品と競合製品を比べた場合、自社製品が選ばれるのは価格や機能が主ではない。いかに顧客の価値を向上させることができるかが重要なポイントになる。(11/21)

news094.gif なんて素敵にフェイスブック
夏から秋にかけて行った「誠 ビジネスショートショート大賞」。吉岡編集長賞を受賞した作品が、山口陽平(応募時ペンネーム:修治)さんの「なんて素敵にフェイスブック」です。平安時代、塀に文章を書くことで交流していた貴族。「塀(へい)に嘯(うそぶ)く」ところから、それを「フェイスブック」と呼んだとか。(11/16)

news094.gif 部下を叱る2つのポイント
叱るのは難しい。上司だって人間だ、言いづらいことを言うのには勇気がいるもの。役割だと割り切り、叱ってはみたものの、部下がむっとしたら自分も嫌な気分になる。そんな時に気をつけたいポイントが2つある。(11/14)

news094.gif 第6回 幸せの創造こそ、ビジネスの使命
会社は何のために存在するのでしょうか。私の考えはシンプルです。人間のすべての営みは、幸せになるためのものです――。2012年11月発売予定の斉藤徹氏の新著「BE ソーシャル!」から、「はじめに」および、第1章「そして世界は透明になった」を6回に分けてお送りする。(11/8)

オルタナティブ・ブログは、専門スタッフにより、企画・構成されています。入力頂いた内容は、アイティメディアの他、オルタナティブ・ブログ、及び本記事執筆会社に提供されます。


サイトマップ | 利用規約 | プライバシーポリシー | 広告案内 | お問い合わせ