タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとlibraryとperformanceに関するkgbuのブックマーク (9)

  • 開発メモ: IndexDB: 転置インデックスのためのDB

    大震災の時分に何だが、Kyoto Cabinetベースで検索エンジンの核となる転置インデックスを作るのに適したDBを実装したという話。 転置インデックスとappend操作 多くの検索エンジンの核となる転置インデックスとは、検索語に一致する表現がどこに出てきたかという位置情報のリストを保持するものであり、検索語をキーとして位置情報リストを値とする連想配列である(転置インデックスを使わない検索エンジンもあるが)。この位置情報リストをposting listとか呼んだりするらしい。転置インデックスにもいくつか流儀があり、検索語をどのように切り分けるかで単語(分かち書き)方式とか文字N-gram方式とか呼ばれるものがあったりするが、いずれにせよ、小さいキーと、非常にでかい値を保持する連想配列を作ることには変わりない。 で、素朴に転置インデックスを作ろうとすると、検索対象の文書を解析しながら、得られ

    kgbu
    kgbu 2011/03/11
    インデックス作成の際のappendに関するバッファリングをうまいことしてくれるらしい
  • 今のJVMに欠けている物

    原文: チャールズ=オリバー=ナター 今日ツイッターで、「JVM及びJDKが、あらゆるプログラミングにおいて真にイケてるプラットフォームになる為には未だ幾つかの欠陥が有る」と呟きました。沢山の人から「もっと詳しく」とせっつかれたので、ここに短く書き起こしておきます。勿論、これで全部という訳ではないのでしょうが、今日思いついたのはこれだけです。 ゼロから起動する際のパフォーマンス現存するJVMの起動はかなり速いですが、Java 7でのHotSpot(訳注:Sun及びオラクルのJVM)にはこれをより良くする為の改良が盛り込まれています。普通、こういった改良は、バイトコードを予め検証したり(或いは検証の為のヒントを与えたり)、クラスデータを幾つかのプロセスで共有したり、在り来たりではありますがプログラムのロード時間やリンク時間を短縮する工夫を凝らす事で成し遂げられます。ところが、多くのアプリケー

  • 140行で作る分散リアルタイム検索エンジン(Twitter Streaming API対応) - 古橋貞之の日記

    マトモに使えるRPCライブラリ MessagePack-RPC for Ruby のバージョン 0.2.0 をリリースしました! 新たにコネクションプーリングの機能を追加しました。一度接続したコネクションを共有して使い回すことができます。コネクションを何度も張り直す負荷と遅延を削減でき、リソースの消費も抑えられます。 また、不意に切断されたコネクションを自動的に再接続する機能を導入し、信頼性を向上させています。 これを使って何か作ってみようと言うことで、twitterのリアルタイム検索エンジンを作ってみました。日語を検索できないなど機能は貧弱ですが、プログラム全体がわずか140行に収まっています(クローラ27行、インデクサ48行、クラスタ管理ノード37行、検索クライアント28行)。 新しいつぶやきを受信するたびに、リアルタイムで転置インデックスを作成していきます。インデックスを作成するノ

    140行で作る分散リアルタイム検索エンジン(Twitter Streaming API対応) - 古橋貞之の日記
    kgbu
    kgbu 2009/12/07
    コネクションpoolingの機能のデモ
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    kgbu
    kgbu 2009/11/06
    memcached in Erlang。中でLShiftのgen_server2を使っているようだ。この時点ではtestが通らないなどの問題があったらしい。
  • Digg Blog

    This post was written by Betaworks lead scientist Suman Deb Roy and was originally posted on Medium How Digg Bot finds stories for your favorite topicsA year and half ago, the Notifications Summit was held at Betaworks to deliberate on many key ideas: the push and the pull, notifications as a primary interface, as a meta-app, utility of the lock screen, deep linking, filters etc. There was growing

    kgbu
    kgbu 2009/10/29
    MXHR(multipart XMLHttpRequest)で画像なんかmediaの処理が高速になるとかいう話らしい。
  • Erlang XML parser comparison

    kgbu
    kgbu 2009/10/25
    xmerl in R13 took 35-40ms, erlsom took 28ms and linked-in driver based parser took 7ms.だけど、同じデータが得られるわけではないところが問題のようだ。
  • マルチコア時代の高速サーバーの実装 - Blog by Sadayuki Furuhashi

    特にサーバー用途では、CPUがシングルコアに戻ってくることは考えにくい。 マルチコアCPUの性能を活かすにはマルチスレッドに対応したサーバーの実装が必要になるわけですが、マルチスレッドなプログラミングは往々にして「高負荷になると固まる」とか「たまに落ちる」といった悩ましいバグと戦わなければならず、イヤです。 かといってシングルスレッドでは、近い将来 32コアCPU! などが出てきたとき、たぶん性能を発揮できません。 そこで、そこそこデバッグしやすく、それでいて多コアCPUでもスケールするという落としどころを模索しているのですが、ボトルネックはネットワークIO周りにあるだろう*1という前提の元で、ネットワークIO部分だけをマルチスレッドで動かし、それ以外の部分をシングルスレッドで動かすというアーキテクチャを考えています。 ロジックの部分はマルチスレッドで書いても共有リソースにアクセスする度に

    マルチコア時代の高速サーバーの実装 - Blog by Sadayuki Furuhashi
    kgbu
    kgbu 2009/02/03
    ロジックはシングルスレッド。IOはマルチスレッドという落としどころらしい。ロックを使うならそうかも。
  • mixi Engineers’ Blog » Linux Programming、epollの話

    お久しぶりです、初めての日の夏に圧倒されているトールマエサカです。 今日はLinuxにおけるネットワークプログラミング関連のネタです。分散データベースサーバの開発過程で最近よくLinuxのepollというイベントハンドリング機能を使っています。これがまた優秀な機能なので紹介します。 このContextでいうイベントハンドラーはサーバがクライエントのリクエストを処理するためのメカニズムです。イベントの感知と通知は大雑把にいうと以下の三つの処理で構成されています: 一つもしくは複数のディスクリプタを監視 ディスクリプタの準備が整うまでハチ公のごとくひたすら待ち続ける 準備が整ったディスクリプタの通知 アプリケーションでの実装は一昔までselect(2)、もしくはpoll(2)というシステムコールで行われていました。二つとも役目は同じですがselect(2)の場合、kernelをいじらない限り

    mixi Engineers’ Blog » Linux Programming、epollの話
    kgbu
    kgbu 2008/09/13
    libeventで使われているepollについての記事
  • lists モジュール、自前の関数、リスト内包表記の速度比較 - cooldaemonの備忘録

    検証コード gist: 6312 ― GitHub 感想 foreach 末尾再帰できなくても自前の関数の方が早い・・・コードの書き方が悪いのかな? lists:foreach/2 を使ったからといって、可読性が劇的に上がるわけでもないので、lists:foreach/2 は使うの止めよう。 foreach に関しては、lists:foreach、 関数渡し - いたわさににほんしゅ こちらを参考に。 reverse 検証コードを繰り返し実行した所、lists:reverse/1 の方が、自前の関数より早い事の方が多かった。 今後、lists:reverse/1 は積極的に使って行く。 map 関数呼び出しが存在しないなら、リスト内包表記が、速度と可読性のバランスが取れていると思う。 これみたいに関数を使うなら、素直に lists:map/2 を使った方が良い。 ただ、lists:reve

    lists モジュール、自前の関数、リスト内包表記の速度比較 - cooldaemonの備忘録
    kgbu
    kgbu 2008/08/29
    ここまできたら、Cで書き換えてしまってはどうなのだろうか?
  • 1