ISUCON4 予選でスコア30万点以上を出す方法 #isucon

山形組提出コード https://github.com/nihen/isucon4_yosen_yamagatagumi/tree/master 1プロセス オンメモリ nginx embeded perl ./benchmarkerv2 bench --workload 8 type:score success:290030 fail:0 score:62651 GOGC=off ./benchmarkerv2 bench --workl…

ISUCON3 予選のAMIでスコア74000点以上を出す方法 #isucon

https://github.com/nihen/isucon3_yosen_yamagatagumi 上記のisucon3.psgi/nginx.confでworkload=3で Result: SUCCESSRawScore: 74385.9Fails: 0Score: 74385.9 がでています。 予選実施時とくらべたポイントは workload指定(ちなみに予選通過amiもworkloa…

Perlの変数はCoWで共有されてもいずれCopyされるという話

https://gist.github.com/nihen/7085103 http://www.perlmonks.org/?node_id=905667 https://rt.perl.org/rt3//Public/Bug/Display.html?id=119937 http://d.hatena.ne.jp/kazuhooku/20100909/1284005880 大きいマスターデータなどを親プロセスで読み込んで…

現在のcarton利用時のモジュールアップグレード方法について

追記(2013/09/20) carton1.0以降を使うことにより下記の問題はすべて解決しています。心配するのをやめて新しいcartonをお使いください。 cartonはupdateコマンドが現在まだサポートしていない。 問題は二つあって、 development環境でアップグレードしたモ…

git-set-file-times became to include merge commits.

git-set-file-times はmerge commitの時間でmtimeを更新してくれていなかったので、コミット日時とマージ順序が逆転しているとmtimeが更新されないままになっていたので修正しました。 diff: https://git.wiki.kernel.org/index.php?title=ExampleScripts&cu…

Teng vs DBIx::Skinny vs DBIx::Class vs DBI ベンチマーク 2012

https://gist.github.com/3801485 --- insert --- Rate dbic teng skinny dbi dbic 941/s -- -17% -35% -45% teng 1131/s 20% -- -21% -34% skinny 1437/s 53% 27% -- -16% dbi 1706/s 81% 51% 19% -- --- fast_insert --- Rate dbic skinny teng dbi dbic 9…

Teng::Plugin::LookupPK

Tengには機能は制限されているけれどもsingle()よりも速いlookup()が使える、Teng::Plugin::Lookupていうプラグインが付属しているのだけれども、それよりもさらに機能を制限して速くしたlookup_pk()ってのを実装してみました。 一旦Teng本体をforkしたもの…

Teng vs DBIx::Skinnyベンチマーク 2012

nekokakさんが以前TengとDBIx::Skinnyのベンチマークとってみたでとっていたのですが、1年半以上経っていてその後Tengはバージョンアップを重ねていますので、改めてとってみました。 ベンチマークスクリプトはnekokakさんのものをもとに少し改造してtestも…

インストールされたCPANディストリビューションのバージョンを特定できない問題について

Cartonを使っているとこの問題があって今までだましだましやっていたのだけどそれも限界になってきたので問題の解決を図ってみたんですが一筋縄じゃいかなそうだったので一旦問題の整理と周知のためにエントリを書いてみる次第。 用語の整理 CPAN author諸氏…

ucs2エンコーディングのススメ

はじめに MySQL Casual Advent Calendar 2011 - MySQL Casualで24日目を担当します。nihenです。 といいながら、25日になっちゃっています。すみませんすみません。 さて、みなさんはテキスト系カラムのキャラクタセットは何を指定していますか? cp932 に決…

split git またはこぼれたギットに泣かないで

CPANモジュールのdistを分割したい時などにgit repositoryも分割したいということになる。 が、分割先のrepositoryに含まれないファイルのコミットログなどが一緒に分割されてくるとログが肥大すぎていろいろとうざいときに泣かないために。 まあ、基本git f…

TODO

あとで書く cpanm -lとcpanm -Lの違い(いつも忘れて調べてるので) cpanfileについての自分の理解 cartonのmultiple mirrorパッチ TengとHandlerSocketとわたし rjbsの言っていたMoose switch to Any::Mooseが危険なはなし こぼれたギットに泣かないで => …

DBIとforkの関係

実際ググれば正解はいっぱい出てくるしここに自分もコメントで書いてたりしていまさら書く必要もないかなと思ってたけど一応自分のブログでもまとめておくということで。 一般的な解 DBIx::ConnectorとかDBIx::Handler経由でかならず$dbhを取得してからDBIを…

Amon2はAmon2::Setupを別distにしたほうがいいんじゃないかという話

carton をつかう人がふえてくるだろうという予測のもと、依存をへらす変更をしています http://d.hatena.ne.jp/tokuhirom/20111114/1321232436 自分もcartonが普及するとプロジェクトのextlib(local)に依存はすべていれる方式が一般化していくと思っています…

気楽にperlのはなしを書いていくことにする

ツイッタがはやりはじめてからずっといってるけど、エンジニーアの人はブログをかいた方がいいとおもっていて、ツイッタにたれながしているだけだと知見がなんかこう、がしっとはまらないというか、そういうかんじがしてる。 http://tokuhirom.hatenablog.co…

はじめりです

はじ //