フロントエンドのパフォーマンス計測は得意なのだが、サーバーサイド node.js のメトリクスの取り方はあまり知らなくて、いつも勘でやりがちだった。最近は業務でこの周辺で困ることが増えたので、勉強しなおした。 また、最近使ってみたかった cloudflare workers の制限で、メモリ 128MB、CPU 時間 50ms という制約があり、このためにも Node.js の CPU のメトリクスを計測できるようになっておく必要があった。 という目的を踏まえて、今回は OS やデータベースの最適化は扱わず、ネットワークとアプリケーション層だけに絞って学習した。あと仕事の Docker イメージのサイズにも悩んでたので、ここも。 (あと ISUCON 参加者が楽しそうだったのもある。 ISUCON のチューニング対象にフロントエンドは含まれないので…) 計測対象 今回実験したリポジトリはこ
某イベントのためのコードを書くのにHTMLのスクレイピングをやりたいなー、nodeで書くかなー、去年は jsdom で書いたけど今はどうなんだろね、とか調べてたら、どうもこういうあたりのがあるらしい。 jsdom たぶん一番有名で高機能、だけど重い。 node-jquery jQuery読むだけならコレ!みたいな感じ、だけどあんまりアップデートされてないかも。使いかたはいちばんシンプル。 依存関係がちゃんと書かれてなくて、追加で手で xmlhttprequest をインストールしておかないと動かなかった。 cheerio お前ら重い! 俺がjQuery記法を再実装してやる! という男らしいライブラリ。 zombie ブラウザの挙動をシミュレートする的なライブラリ、Mechanizeみたいなやつかな。いまの用途では前段でHTTPレイヤをいじる必要があるので今回は用途に合わない。 sqrape
前置き Experiences with Node.js: Porting a RESTful Service Written in Java - ZiggyTech 上記記事では、実験的にJava (Jersey + Hibernate on Tomcat) で実装された REST API サーバを Node.js で書きなおしてみたら、少ないリソース(CPU/メモリ使用量)でほぼ同等のパフォーマンスが出せたよ(ただし、O/Rマッパーを使用しない場合)、と書いてあります。この件に関して @koichik さんとやり取りしていた中で以下のような意見を頂いたので、実際にやってみましたという記事です。 @hakobera メジャーってことだと,あの比較が Play ではなく Tomcat なのは正解.日本的には Jersey ではなく Struts (もちろん 1 の方)なら更によかったw 2
Node.js v0.6 から新規標準モジュールとして導入された Cluster のベンチマークを取ってみました。 測定環境 Server CPU: AMD PhenomII X6 1090T (6コア) MEM: DDR3 16GB (4GB*4) Client MacBook Pro 15 (Early 2011) CPU: Intel Core i7 2.0GHz (4コア) MEM: DDR3 8GB (4GB*2) Network 1GigabitEther (同一セグメント) テスト方法 テストスクリプト cluster-bench.js var cluster = require('cluster'); var http = require('http'); var numCPUs = parseInt(process.argv[2], 10); if (cluster.is
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く