タグ

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

  • マルチ・スレッド(multi-thread)プログラミングの落とし穴、その1(かもしれない)

    ここのところ技術系ブロガーの間で話題になっている、「C10K問題(参照1、参照2)」は、ひとことで言えば、多くのウェブ・サーバーで採用されているmulti-threadやmulti-processに頼った(もしくは頼りすぎた)多重処理というアーキテクチャーのスケーラビリティに対する極めてまっとうな警告である。 この話は、決して最近になって始まった話ではなく、パソコン業界ではパソコンのOSにpreemptiveなマルチタスクが導入されはじめた90年代の前半から、さらに遡ると、DECを中心にテクノロジーが進化したミニコンの時代から、ソフトウェア・エンジニアたちの間で盛んに討論されてきたテーマである(さすがに、メインフレーム時代の話は私は知らない)。 十数年を経た今でも、いまだに決着が付いていないこの問題は、私の大好きなテーマの一つでもあるし、もし私が博士号をこれから取得しようとするのであれば、

    yass
    yass 2013/05/22
    "ミニコンから降りてきたmulti-threadを多用した多重処理を支持する一派と, 16ビットパソコンの時代のnon pre-emptiveなOSの上で別の進化をしてきたasynchronous I/Oを利用した多重処理のアーキテクチャを支持する一派のぶつかり合い"
  • 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: Ajaxの本質、「非同期メッセージ型ウェブ・アプリケーション」のススメ

    最近、「これからのウェブ・アプリケーションはAjaxだ」という声を良く聞く。ソフトウェアを生業としているエンジニアとしては、この手の「流行もの(hype)」に触れた時には、表面的なものに踊らされずに、その質を自分なりにしっかりと捕らえて消化・吸収して自分のものにしなければいけない。今までも、「オブジェクト指向」、「マルチ・ティアー・アーキテクチャー」、などの言葉が一人歩きするたびに、「これからは○○だ」とか「○○の時代は終わった」などと、過激なことを言って読者の目を引こうとだけするマスコミや企業のマーケティング戦略に数多くの人が踊らされてきた。 そんなノイズだらけのメッセージに混乱させられた結果、「Cではオブジェクト指向のプログラミングは出来ない」と信じているエンジニアがいまだに沢山いることは全く嘆かわしいことだ。「オブジェクト指向のプログラミング」は、設計姿勢・プログラミングスタイルに

    yass
    yass 2006/03/20
  • Life is beautiful: プロトタイプ作りの効用

    私の関わっているプロジェクトの一つに、「全く今まで存在しなかった形のデジタル・エンターテイメントを実現しよう」というとても楽しいプロジェクトがある。この手の大きなプロジェクトを成功させるには、「大きな夢を共有しつつ、同時に一つ一つ着実に駒を進めていくこと」が大切なのだが、なかなか簡単ではない。特に、まだ「最終的に目指すもの」のイメージがちゃんと共有されていないので、各チームの動きがちぐはぐなのだ。 そこで、私が「プロジェクトメンバー向けに、目指すライフスタイルのイメージ・ビデオを作ろう」と提案しているのだが、なかなか理解してもらえない。「プロジェクトが立ち上がったばかりなのに、そんなものはまだ作れない」とか、「もう少し見えてきてからにした方が良いのではないか」という否定的な意見が出るのだ。今日は、そんな人たちへのメッセージ。 私がもの作りをするときは、常にユーザー・インターフェイスのプロト

  • 1