タグ

プログラミングとBenchmarksに関するan-ironic-manのブックマーク (5)

  • Writing Fast Rubyというスライドが良い | mah365

    ちょっとしたコードの書き方でパフォーマンスが変わることがあります。リーダビリティを重視する向きからすれば小手先のテクニックに映るかも知れないのですが、リーダビリティを維持しながらちゃんとしたパフォーマンスを出すためにも、テクニックを知ることは大事なことだと思うのです。 結構違うもんですなー というわけで、そんなテクニックをまとめたスライドがWriting Fast Ruby。見ていて参考になったのでメモ。 たとえば引数に&blockをとってcallするよりも、yieldの方が5倍速い、とか、 def slow(&block) block.call end def fast yield end mapにブロックを渡すよりも、シンボルを渡す方が20%速い、とか (1..100).map {|i| i.to_s} (1..100).map(&:to_s) mapしてからflattenを呼び出すよ

    Writing Fast Rubyというスライドが良い | mah365
    an-ironic-man
    an-ironic-man 2014/09/30
    手元で試したら真逆の結果とか微妙に違う結果になったやつがあった。バージョンの問題かな。あとでちゃんと検証しよう
  • tree-tips: MySQLで大量レコードのjoin | MySQL

    大量レコードのjoinは遅い 遅くなるのはMySQLだけなの? そんなことはありません。MySQLもPostgresもOracleSQLServerも遅くなります。 Oracleのオプティマイザは賢いですが、基的に大量レコードのjoinは避けるべきです。 何故遅くなるの? データ量が多すぎてテンポラリ領域を使う(バッファに乗り気らない)から、です。 何件くらいからjoinが遅くなるの? スキーマ構造によるので一概には言えませんが、大体1000件辺りから微妙に遅くなり、1万件を超えると一気に遅くなります。 1万件程度なら割と力技(マシンパワー)で何とかなるので、1万件を超えた辺りから注意してみて下さい。 よくある例では、ログを元にしたアクセスレポートの生成時に、大量レコードのjoinが必要になり易いかもしれませんね。 解決策 データ量を減らしてからjoinする。 データ量が多いならデータ

    an-ironic-man
    an-ironic-man 2014/06/03
    “スキーマ構造によるので一概には言えませんが、大体1000件辺りから微妙に遅くなり、1万件を超えると一気に遅くなります”。小刻みにSELECTしてUNION ALLするという発想はなかった。
  • [PhpStorm/WebStorm]jQueryの非効率な使い方をすると警告してくれるようになった | バシャログ。

    iOS6 のマップって不便って騒がれたけど、それほどでもないよね?…って思ってましたが、最近お店探しで使って全然見つからなかったので、さすがにこれは…と思いMapion インストールしました。使いやすいですね… 今日は、だらしない明らかに非効率なjQueryなコードを書くとやんわりと指摘してくれるPhpStorm/WebStormの機能「Inspection: jQuery usage efficiency 」を紹介します。(バージョン5.0以降) New JavaScript inspections and intentions | WebStorm & PhpStorm Blog 非効率なjQueryのコード っていったいどんなコードなのか。具体的には以下のようなコードです。 $("p").addClass('hover'); $("p").toggle(); 実際にはこんなコードを書

    [PhpStorm/WebStorm]jQueryの非効率な使い方をすると警告してくれるようになった | バシャログ。
    an-ironic-man
    an-ironic-man 2012/12/13
    Vimのプラグインで欲しい(・∀・)
  • 「起動高速化の秘話」 Sleipnir Mobile for Android 開発日記 5

    こんにちは。「Sleipnir Mobile for Android」開発担当の西田です。先日リリースした「2.0」は予想以上に大きな反響があり、たくさんの方に使い始めていただくことができました。お陰様で、有料版の「Black Edition」が、通信カテゴリでなんと1位になりました! 皆様ありがとうございます。 「2.0」では、前回の開発日記で取り上げたエクステンション機能を搭載しました。 しかし、それ以上に話題になったことがあります。それは起動を5倍高速化したことです。第5回目となる今回の開発日記では、「2.0」での起動高速化について詳しく掘り下げたいと思います。 まずは指標を決める 指標がなければ、成果が分かりません。起動高速化における指標は、起動時間です。というわけで、最初の取り組みとして起動時間をどうやって計測するかを決めました。 とまあ大層な語り出しですが、大したことじゃないで

    「起動高速化の秘話」 Sleipnir Mobile for Android 開発日記 5
    an-ironic-man
    an-ironic-man 2012/04/01
    指標を決めてプロファイリング。「何もしなければ0秒!」。
  • YAPC::Asia 2011 / 高速化のはなしとか

    TopicsPlaceHolder SectionTitlePlaceHolder TIME rest time current/total

    an-ironic-man
    an-ironic-man 2011/10/16
    Vimperatorのせいでページめくる方法に気付くのに時間かかった。そしてmalaさんの正体を初めて知った。 ←どちらも資料と関係ない
  • 1