タグ

ブックマーク / bayashi.net (9)

  • MySQLのスレッドとか接続数とか

    最大接続数設定 mysql> show global variables like 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 150 | +-----------------+-------+ 1 row in set (0.00 sec) 起動してからの累積接続数 mysql> show global status like 'Connections'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Connections | 11862 | +---------------+-

    MySQLのスレッドとか接続数とか
    issm
    issm 2016/03/22
  • Perlでテストがこけて泣きそうなときのTIPS

    Perl 書いてりゃ Test::More でテスト書きまくると思うのですが、Test::More っていうか、まあ別に Test::More だけがそうというわけでもないのですが、テストこけたときのケアが十分じゃないなと思うときがけっこうあります。 開発過程で書いてるコードというのは、いつもいつも確信を持って書いているわけではないわけで、それでなくてもうっかり間違うときもあり、せっかくテスト書いているのに何だかよくわからない理由でこけてパスできなくて時間を浪費してしまったりが日常になってたりしませんか? そういうのを繰り返しているとやがてテスト嫌いになりテスト書かなくなって番コードにデバッグコードが入り乱れ、リファクタもどんどん不可能になって小回り効かないままプロジェクトが失敗して彼女に振られてしまうわけですね。困ります。 note diag explain Test::More には

    Perlでテストがこけて泣きそうなときのTIPS
    issm
    issm 2015/07/02
  • Perl のベンチマークを気軽にする Benchmarks 書いた

    Perl でベンチマークとるなら Benchmark モジュールが鉄板。僕も Benchmark モジュールを使ったベンチ用のテンプレートを用意していて、必要になったらそれを書き換えてベンチをとるのだけど、ベンチ自体はたまにしか書かないから、cmpthese とか timethese とかごっちゃに記憶してたりしてそらで書けなくて困る。ほんとはもっと思いついた時にぱっとワンライナーで書けるくらいに気楽にならないかなとずっと思ってた。 そういうわけで、Perl のベンチをもっと気軽にするモジュールを書いた。 Benchmarks Benchmarks という名前がだいぶ攻めてるが、最初 Benchmark::Simple とかにしようかと思ったけど、あれ、Benchmark::Lite だったっけ?、みたいなのが嫌だったので、s つけるだけにした。 ルーチン同士を比較するベンチをとっても簡単

    Perl のベンチマークを気軽にする Benchmarks 書いた
    issm
    issm 2014/04/30
    cmpthese/timethese 忘却対策.
  • YAPC::Asia 2013, You can't help eating ramen in Hiyoshi!

    YAPC::Asia 2013, You can't help eating ramen in Hiyoshi! YAPC::Asia 2013 will convene for 3 days from 19 September in Hiyoshi, Yokohama. You know that Yokohama is the famous Ramen city in Japan. The Ramen comes to Japan from China, but it's been developed as a Japanese own food since last 2 centuries when ramen spread from the China towns in Yokohama, Kobe and Nagasaki. Seriously, in Yokohama, the

    YAPC::Asia 2013, You can't help eating ramen in Hiyoshi!
  • Perl を学ぶとき、真っ先に覚えたいモジュール

    春ですね! 新年度ですね! Perl 書くことになってしまいましたか! 奇遇ですね! sigil が意味わかりませんか! 特殊変数がググれませんか! リファレンスが謎ですか! 1; の存在が不明ですか! オブジェクト指向が難しいですか! むしろオブジェクトじゃないコードの方がゆるくて大変ですか! XS が読めませんか! ええ、XS は僕もあんまり読めません>< さて、この春から Perl を学ぶことになった人も多いかと思いますが、なにはなくともこれまず覚えたら後が楽になるんじゃないかというモジュールを、いくつか紹介したいと思います! (まあ、自分の初期を思い返すと、この辺はやく知っておきたかったなあというリストです) Data::Dumper, YAML 変数(リファレンス)やオブジェクト(blessされたリファレンス)をダンプする用途では、Data::Dumper が一番メジャーのような

    Perl を学ぶとき、真っ先に覚えたいモジュール
    issm
    issm 2013/04/15
  • Unicode::UTF8 がガチ爆速すぎる

    あんまり深読みしてないんだけど、Unicode::UTF8 が超速い。 おなじみ Encode との比較で、PODには 600% 速いって書いてあるけど、手元で試す感じだとだいたい 350~650% 速い。つまり、マジ速い。 Benchmark: timing 350000 iterations of Encode, Unicode::UTF8... Encode: 5 wallclock secs ( 4.41 usr + 0.00 sys = 4.41 CPU) @ 79365.08/s (n=350000) Unicode::UTF8: 0 wallclock secs ( 0.72 usr + 0.00 sys = 0.72 CPU) @ 486111.11/s (n=350000) Rate Encode Unicode::UTF8 Encode 79365/s -- -84%

    Unicode::UTF8 がガチ爆速すぎる
  • CoW 要点まとめ

    CoW とは CoW = Copy-On-Write [ CoW - Wikipedia ] プロセスのコピーを作成 (fork) するとき、書き換えることのないメモリページは、両方のプロセス(元のプロセスと生成されたプロセス)で共用し、書き換える可能性のあるメモリページは、新たなメモリページを割り当ててコピーを作成する 鉄則 fork するプロセスを生成する場合、親子間でメモリ共有した方が良い forkする前に確保したメモリ領域は子プロセスとの間で共有される 共有されたメモリ領域に対して書き込みを行うと共有は解除(コピー)される forkした後に確保したメモリ領域は子プロセスごとに確保される(共有されない) どのプロセスでも同じように参照するだけの(書き換えない)データは、fork前に確保して共有した方が全体でのメモリ使用量を小さく保てる。つまり、fork 数を多くしたりできる。そして、

    CoW 要点まとめ
  • 生のハッシュリファレンスを return したら遅い

    ハッシュリファレンスは畳み込み的に定数扱いじゃなかったのね、ってのに気づいて驚いた(というのが当に遅い原因か確定させて無いけど)(【追記2】参照)。 #!/usr/bin/perl use strict; use warnings; use Benchmark qw/timethese cmpthese/; my $HASH = { foo => 123, bar => 456, baz => 789, }; my $result = timethese (750_000, { 'VAL' => '&logic1;', 'RAW' => '&logic2;', }); cmpthese $result; sub logic1 { _logic1()->{foo}; } sub _logic1 { return $HASH; } sub logic2 { _logic2()->{foo};

    生のハッシュリファレンスを return したら遅い
    issm
    issm 2013/01/12
  • Travis CI が便利

    クラウド Jenkins 氏な感じの Travis CI がとても便利。 what is Travis CI GitHub のリポジトリをビルドして結果を通知してくれるWebサービスPerl プロジェクト対応。 使ってみる Baya で試してみます。 リポジトリのルートに .travis.yml というファイルを用意します language: perl perl: - "5.14" - "5.12" - "5.10" notifications: irc: channels: - "irc.freenode.net#baya" on_success: change on_failure: always ビルドする perl 環境の設定と、通知をどこにどのタイミングでするかを書いてあります。このあたりに詳しく 載ってます。 GitHub で travis-ci との連携を ON にします

    Travis CI が便利
  • 1