タグ

ブックマーク / satoshi.blogs.com (7)

  • node.js と thread hog の話(3)

    [前回までの話へのリンク] ・node.js と thread hog の話(1) ・node.js と thread hog の話(2) では、なぜ今頃になって HTTP Server の c10k 問題(もしくは、thread hog 問題)が顕在化したのだろう。 当時(90年代の終わり頃)と比べて、もっとも大きく変わったのはCPUの性能である。クロック数は、数百MHzから数GHzへと一桁増えたし、マルチコア化もしている。CPU 性能だけ見れば、当時の数十倍の能力が出てしかるべきである。 しかし、実際の人生はそう簡単ではない。サーバーのパフォーマンスはCPU性能だけが決めるわけではないからだ。そこで、ボトルネックの一つとして注目されはじめたのが、thread の数なのである。 前回述べた様に、thread 一つあたり 2MB~8MB のスタック領域を仮想メモリ空間に確保しなければならな

  • node.js と thread hog の話(2)

    [前回までの話へのリンク] ・node.js と thread hog の話(1) 最近になって「c10k 問題」が広く知られるようになったが、実際には、前回書いたように、thread を使いすぎるプログラム(thread hog なプログラム)はスケーラビリティが悪いということは、当時(90年代の終わりごろ)でもすでに「知る人は知る」問題になっていた。 複数のクライアントマシンとの間のソケットを開きっぱなしにしておく、Proxy Server、Chat Server、MMORPG に関わっている人達の間で、ソケット一つに thread を一つ割り当てるスタイルのプログラミングがスケーラビリティに欠けることが知られるようになったのもこのころである。 当時、Microsoft で MSN Messenger を作っている知り合いが「ついに1万人が同時接続しても大丈夫なアーキテクチャに到達した

  • node.js と thread hog の話(1)

    ここ数日、 node.js で色々と作りはじめているのだが(node.js が一番力を発揮するのは、xmpp server や、push notification server のようにソケットを開きっぱなしにして非同期通信をするケースだと思うのだが、それについては来週のメルマガで詳しく解説する)、これで思い出すのが Microsoft 時代の「"thread hog" 退治」だ。 "thread hog" とは私が作った造語で、"memory hog" (メモリをやたらと使うプログラムのこと)と同じように、thread を不必要に作るプログラムのこと。 最初に出会った thread hog は、Microsoft が作っていた proxy server だった。コネクションが1000を超すとやたらと遅くなり、しまいには落ちてしまうという欠点を持っていたため、一時は「出荷出来ないところか、

  • Life is beautiful: 私のとっておきのプログラミングスタイル

    404 Blog Not Found の「LiveCoding に学ぶプログラミングの三原則」を読んでいたらどうしても書きたくなったので。あくまで私のスタイルなので、参考にするもしないもご自由に。 1. スタードダッシュでできるだけはやくめどをつける 学生時代から夏休みの宿題は7月中に終わらせていた私とすれば、ラストスパートよりはスタートダッシュで勝負する。どのみち、どこかで思いっきり頑張らなければならないのであれば、締め切り間際ではなく、スタート間際に頑張るべきというのが私のポリシー。十週間のプロジェクトであれば、最初の二週間が勝負。そこで八割がたのめどをつけておき、後は流す。最初の二週間がめどが立てられなければ、十週間で完成できる可能性は低いと考える。常にそういう姿勢でいれば、締め切りぎりぎりになって致命的な欠陥が見つかって痛いめにあったり、当は大幅な設計変更をすべきなのに応急処置で

    takigawa401
    takigawa401 2010/07/20
    スタートダッシュ、タスクの細分化、別タスクの割り込み禁止。作業自体も手戻り可能な単位でコミットし、中途半端に直そうとせずバッサリ捨てる。
  • GoogleのAndroid向けのアプリビジネスはなぜ魅力的ではないか?

    PhotoShareをiPhone向けに提供して早くも一年になるが、もっとも良く投げかけられる質問は「PhotoShareはAndroidとかの他のプラットフォームに移植しないの?」というものだ。 少し前までは、「まだiPhone以外のビジネスが十分に大きくないから今はまだ早い」、「iPhone上でやるべきことはまだ沢山あるから」、などと答えて来たのだが、最近は少し見方が変わってきた。 今の勢いでHTML5が進化・浸透してくれるのであれば、わざわざ移植コストをかけてAndroidWindows Mobile向けにネーティブ・アプリを開発するよりは、少なくともUIの部分をすべてHTML+Javascriptにまかせたアーキテクチャでのインタラクティブなアプリの開発というのも十分に可能性があるように思えてきたのだ。 この「HTML+Javascriptですべて出来るじゃん」という発想は、そも

    takigawa401
    takigawa401 2009/08/04
    HTML5の有用性
  • iPhone OS 3.0 に関してひと言

    米国のPR会社に勤める知り合いに「iPhoneの新しいOSに関してひと言」というテーマでインタビューを受けた。要約するとこんな感じ。 私:Big Canvasのビジネスにとって一番プラスになるのは間違いなくPush Notification。昨年の9月にリリースされるはずだったので、その時から首を長くして待っていた。PhotoShareのようなコミュニケーション型のサービスにとって、Push型で情報を届けることは、携帯電話にふさわしいおもてなしを提供するという意味でも必須。3.0向けのSDKを入手し、開発をしているところだ。 私:私は常日頃から「AppleGoogleMicrosoftの18〜24ヶ月先を走っている」と言っているが、今回のアップデートで、Appleは業界のリーダーシップのポジションをまだしばらくは走り続けることを明確にした。Big Canvasのようなベンチャー企業にと

    takigawa401
    takigawa401 2009/05/01
    AppleはGoogleやMicrosoftの18〜24ヶ月先を走っている/iPhone以外はベンチャーが社運を賭けて手を出す価値は無い/Windows Mobileに手を出すのは危険?
  • 単なる「低コストの外注先」ではなくなりつつあるインドのIT産業

    今週はMBAの授業の一環でインドのいくつかの企業を訪ねてまわっているのだが、今日行ったのはInfoSys。 InfoSysは、Fortuneマガジンが"Top Companies for Leaders 2007' list"の10位に選んだ、インドの「IT産業」の花形。

  • 1