2011-01-01から1年間の記事一覧

Perl::Metrics::LiteのCLIでPerlモジュールのメトリクス測定

Perl::Metrics::LiteにCLIを追加しました。FIleとSubroutineのメトリクスを測定できます。簡単にlocやmccableのcomplexityなどを測定できるので、casualに使ってみて頂ければ。また、Jenkins用に組み込むためのmeasureperl-jenkinsというスクリプトも同梱し…

3分でPerlのプロジェクトをJenkins Readyにする

こんばんは、着る毛布が届く前に風邪を引いたdannです。色々な環境やプロジェクトに携わっていて、その度にJenkinsのセットアップやPerlプロジェクト用のモジュールのインストールなどをしていたりしませんか。また、プロジェクトを作るたびに、Job毎にプラ…

Perl::Metrics::Lite - プラガブルなメトリクス測定モジュール - Perl Advent Calendar 2011

Perl Advent Calendar Hacker Trackの21日目です。 http://perl-users.jp/articles/advent-calendar/2011/hacker/21こんばんは。dann です。みなさん、意識は高まっていますか? 僕は上々です。 今回は拙作の Perl::Metrics::Lite というモジュールを紹介さ…

Jenkinsで継続的メトリクス測定のすすめ - Perl Advent Calendar 2011

Perl Advent Calendar Test Trackの11日目です はじめに こんばんは、家で凍死しそうなので、そろそろセラムヒートでも買おうと思っているdannですTest Track 11日目です! ikasam_a さんから「Jenkinsの話を書いて!」と言われたので、ACDD(Advent Calendar…

Javaの標準Collectionフレームワーク代替としてのfastutil/HPPCの使用のすすめ

Goな人が最適化しているエントリ(http://blog.golang.org/2011/06/profiling-go-programs.html )を読んで、ちょっと面白いなと思ったので、元の論文を読んでみました。読んでみたところ、Java 64bit版は標準のC++の5.8倍遅いとなっていたので本当かな?と思…

PerlプロジェクトでテストカバレッジのCIをする方法

前回から大分時間が経ってしまいましたが、今回はPerlのテストカバレッジ結果のサマリをJenkinsにIntegrationする方法について説明します。 概要 以前、proveのJUnit用のFormatterを使ってテスト結果をJUnit形式のXMLに変換する方法を紹介しましたが(http:/…

大規模(AP/DB) サーバーでのLarge Pageの使用のすすめ

近年はメモリも安くなり、性能を向上させるために多量のメモリを使うことで性能を維持するのは、ある程度の大規模環境であれば一般的なことではないかと思います。特に、JVM、Oracleなどで多量のメモリを使うアプリケーションでは、ヒープサイズが数Gb-数十G…

大規模DBサーバーでのInfiniBandの利用のすすめ

大規模なトランザクションが求められるシステムでは、ストレージには一定以上の投資をしたほうが全体の運用コストは下がります。アーキテクチャをシンプルに出来、かつ台数を少なくできることでオペレーションコストが劇的に下がるからです。従来はHDDを中心…

OracleでSQLのParse回数を軽減するための方法

OracleではSQLの実行手順は、次の3フェーズから構成されます。 Parse Execute Fetch その中でParse処理は、次のような手順で行われます。 セッションにキャッシュされたカーソルが存在しない場合 カーソルをオープン 共有プール上に共有カーソルがある場合 s…

OracleのSQLのチューニングに使うツール

Oracleでは性能に関連するデータが色々と取れるため、性能問題の解決がかなり容易になっています。OracleのSQLのチューニングによく使うツールと使い方のポイントをまとめてみました。 性能状況の統計的分析 (Statspack) 問題箇所の全体に占める割合によって…

DevOpsに優しいSQLの管理方法

性能チューニングは、Hardware, OS, Middlewareに対する理解があるかないかで大分かわってくるところがありますが、Hardware, OS, Middlewareといったインフラに詳しいだけでは、踏み込んだチューニングは行えません。それにも関わらず、AP開発と運用は比較…

Hardwareの基礎性能を測定するためのツール

インフラの性能でアプリケーションの性能限界が決まってしまうため、Hardwareの基礎性能を把握しておくことはとても重要です。以下では、Hardwareの基礎性能を測るための各種ツールを紹介します。 ディスク用ツール - fio DBサーバーなどのI/O intensiveなサ…

継続的プロファイリング

Google-Wide Profiling: A Continuous Profiling Infrastructure for Data Centers http://research.google.com/pubs/pub36575.html 継続的プロファイリングの仕組み 測定はOprofileとGoogle Perf Tools OprofileでのHPMのプロファイル Google Perf Toolsを…

perfの使い方

CPUネックのサーバーの状況をリアルタイムに知りたいケースというのは、科学計算、暗号処理、画像処理などのCPU boundなアプリケーションでは良くあるんじゃないかと思います。perfはoprofileのリアルタイム版といった感じで、hardware event, software even…

Le Grand Bleu

TwitterのBlenderに近いアーキテクチャになっているMessage Pack RPCのJava版の実装を読んでみた

TwitterのBlenderはNIOの使い方として面白い使い方だなあと思っていたので、それに比較的近い実装をしているMessagePack-RPCのJava版の実装を読んでみました(MessagePack RPCのJava版でも同様にNettyを使っています)。読んでみた感じだと、MessagePack RPC…

TwitterのBlenderのアーキテクチャのポイント

http://engineering.twitter.com/2011/04/twitter-search-is-now-3x-faster_1656.html「バックエンドサービスのI/Oが同期になると、I/O待ちで遅くなり、フロントが詰まってしまうので遅い。だから、Non BlockingなI/O呼び出しをしI/Oを多重化し、その呼び出…

Explored!

ついにFlickrのExploreに載りました!今年はもっとたくさん載せられるように頑張りたいところです。http://www.flickr.com/explore/interesting/2011/4/10/page31

Perl CPANモジュールガイド Rocks!

PerlはCPANという環境があるからこそ、今も一線で使われ続けているといっても過言ではありません。しかし、その最大の利点は、同時に初中級者にとっては問題にもなりえます。それは、モジュール量が多すぎて、何を選択すればよいかを判断するのが難しいから…

qunit-tapとproveを使ってJSの単体テストのCIをする方法

「phantomjs + qunit-tapでCLIで単体テスト」をするという素晴らしい方法をt-wadaさんが書かれてました。これを少し応用するだけでJavaScriptの単体テストのCIすることができます。 http://www.slideshare.net/t_wada/wandering-about-javascript-testingFT…

トランザクション数の多いDBサーバーのディスク構成について

IOPSが高い値を維持でき、ある程度コストを抑えたDBサーバーのディスク構成を考えてみる。RAIDカードを全てのスレーブに置くというのは価格がかかりすぎること、SSDが安くかえるようになったことを考えると、以下のような構成が、そこそこの価格でIOPSを稼ぐ…

封筒裏の計算の大切さ

性能やスケーラビリティが求められるシステムでは、どこにどれくらいの性能オーダーが必要なのかを検討するのは、アーキテクチャを検討する上でとても重要になる。封筒裏の計算の段階で大体のオーダーがわかれば、必要になるSWのアーキテクチャ、アルゴリズ…

Kindle使いにおすすめしたい3つのShortcut

あまり操作性がよいとはいえないKindleですが、3つのショートカットを知っているだけでちょっと便利に使えます。 Alt+一番上の行の英字 数字入力 SYMおさなくても、数字が入力できます。ページ移動のときに便利です。 ブックマーク追加 ALT + B 画面のリフレ…

ChromeのVimiumでスムーズにスクロールするようにさせてみた

Vimperatorのsmoozieをvimiumに移植しました。vimiumのscroll step sizeの設定は、400くらいにすると結構快適に使えます。 https://github.com/dann/vimiumこれでvimumでもスクロールがスムーズになり快適に使えるようになりました。

はてなブックマークとInstantPaperを連携させてみた

LDR -> はてなブックマーク -> EverNote というワークフローで情報の蓄積をしているんですが、普段Kindleを使っているので、ゆっくり読みたい物についてはKindleで読むのもいいかもしれないと思うようになりました。そこで、はてなブックマークに登録したエ…

白鳥

光の感じが白鳥の美しさを際立たせていて、何とも言えず幻想的な光景でした。

ラッピング

奥さんの趣味のラッピングを最近一緒にやっていて、ラッピングに少しずつ詳しくなってきました。100円ショップで売ってる物で意外とかわいくラッピングできるので、安く楽しめるので、それもまたいいですね。

ケーキの形

写真を撮るようになってから、ケーキの形や作りがかなり気になるようになりました。かわいらしいケーキを見つけると思わず買ってしまう今日この頃です。