タグ

ブックマーク / y-kawaz.hatenadiary.org (2)

  • Node.jsでカレント実行行を取得する - y-kawazの日記

    Node.jsでエラー発生時に適当に console.log とかを埋めて、しかもそれが複数箇所になってくると、エラーメッセージは分かるがそれがどこで発生したエラーなのかが分からなくて困ったりする。キャッチしたエラーオブジェクトが普通にthrowされたErrorオブジェクトならerr.stackでコールスタックが取得できるからまだしも、只の文字列や独自Errorをcallback(new Error("オレオレメッセージ"))とかで渡されるとコールスタックが取れないのでどうしようとした足跡。 試行錯誤 で、以下の様な関数を作ってみた。仕組みは簡単で、throwしないと行番号取得できないならダミーで例外発生させちゃえば良いじゃないって感じ。*1 function getCallStack() { try { throw new Error("DUMMY"); } catch(e) { ret

    Node.jsでカレント実行行を取得する - y-kawazの日記
  • Node v0.7.0の新機能Isolates(マルチスレッド)を試す - y-kawazの日記

    たまたま新環境にNode.js入れてたらv0.7.0がリリースされてたのに気がついたので、勢いで新機能を試してみた。 V8のバージョンが上がったとかもあるけど多分一番の目玉はIsolates(マルチスレッド)のサポートかな、と思う。開発ブランチでは他にもDomainsという機能も実装中らしいと聞いてたがそれはまだv0.7.0では使えないようだ。 Isolatesの使い方がドキュメントの方には載ってなかったのでソースをisolateとかthreadとかで探してみたところ、どうやらchild_processモジュールのspawnやforkのオプションに thread:true を渡してやればマルチスレッドを使ってくれるっぽいことが分かった。 シングルスレッドと非同期I/Oでシンプル&ハイパフォーマンスが売りのNodeだが、よく「マルチコアが使い切れない、重たいCPU処理したら固まるじゃんプギャ

    Node v0.7.0の新機能Isolates(マルチスレッド)を試す - y-kawazの日記
  • 1