タグ

benchmarkに関するhirafooのブックマーク (4)

  • oinume journal

    大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。 やりたいこと 例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codemodで機械的に書き換えたい。 BEFORE package main import ( "slices" "testing" ) func TestContains(t *testing.T) { type args struct { ss []string s string } tests := []struct { name string args args want bool }{ { name: "empty: false", args: args{[]string{}, ""}, wan

    oinume journal
  • switch文とif連鎖の比較 - Islands in the byte stream (legacy)

    Perl 5.10.0でswitch文が導入されたことにより,ifの連鎖はもっとわかりやすい構文に書き換えられるようになった。 use feature 'switch'; given($foo){ when("bar"){ ... } when("baz"){ ... } default{ ... } } switch文の導入で便利になった一方,このwhen()で使われるマッチングは「スマートマッチ」という特殊な演算子によって行われることのコストが懸念される。 そこで,switch文とif連鎖の速度を比較してみた。 また,かつて単純なif連鎖とよく比較されたのは,ハッシュテーブルを参照する方式である。if連鎖の複雑さがO(n)なのに対し,ハッシュテーブルの参照はO(1)であるため,連鎖が長くなるとハッシュテーブルの方が高速であるとされる。『Perlベストプラクティス』では,ハッシュテーブル

    switch文とif連鎖の比較 - Islands in the byte stream (legacy)
  • Loading...

  • wakaponさんの超☆痛々しいPerl備忘帳: Benchmark.pmをつかってみる

    そういえばPerlを触り始めてから一回もまともに使ったことが無かった!!1.自分はあまりコードを書かない,書けないのでベンチマークを書いてなかったというのが実際のところ.コードを書いて性能を測らないのはさすがにそろそろまずいと思ったので,今回はコードのCPU消費時間を測定するBenchmark.pmを使ってみた.以下,Benchmark.pmのPODにそって自分の言葉でめもめも.まずはBenchmark.pmの基礎となるtimethisを見ていき,根幹にあるtimeitを探ってみる.続いて,複数のコードを実行するtimetheseを見た後,ベンチマーク結果をより分かりやすくするための,cmptheseについて見ていく.サブルーチンtimethisサブルーチンtimethisは,実行回数または実行時間を指定し,1つのコードについてベンチマークプログラムで消費したCPU時間を測定する.以下,サ

  • 1