タグ

Goとrubyに関するguitgraphのブックマーク (2)

  • Golangの defer をRubyでも使いたい - たごもりすメモ

    前にRubyでtry-with-resourcesが使いたいという話を書いてそのときにリリースしたgemもあるが、人類の安全に・便利にリソースを解放したいという欲求には際限がない。 try-with-resources は便利なんだけど欠点がないわけではなくて、リソースの確保と解放を一ヶ所でまとめてやらないとネストが深くなる。複数箇所に分けて書くならネストも2段になってしまう。 これはこれで整理されたコードを書く圧力になるので悪くない面もあるんだけど、とはいえもうちょっと自由にやりたい、いい方法は無いもんか、という話。 defer ある。Golangの defer が便利そう。defer foobar って書いとくと、そのスコープを外れるときに自動的に foobar の内容が実行される。あるスコープのどこに何度書いてもいい。これは便利。 # GolangのdeferのままRubyにもってき

    Golangの defer をRubyでも使いたい - たごもりすメモ
  • 正規表現がどれぐらい遅くなるか(計算量?)を調べてみた - 唯物是真 @Scaled_Wurm

    最近あんまりパフォーマンス的によくない正規表現を見かけたので、いくつかのパターンについて正規表現をいろんな言語で試してみて実行時間を測ってみた(ついでに最悪計算量についてゆるふわに考えてみた) 実際には正規表現エンジンの実装(NFAやDFAとか?)やバージョン、オプション(?)によると思いますしなんとなくの傾向という感じです やること 以下の正規表現についてパターンマッチされる対象の文字列の長さ\(L\)が増えたときに、1回マッチするか調べる時間がどれぐらい伸びるかを調べます .*a a.*b a.*b.*c a(a|aa)*b 計測方法 以下の言語についてIdeoneで実行してみて実際に測ってみた時間を載せます(括弧内はIdeoneに書かれていたバージョン) Ruby (ruby-2.1) Python (python 2.7.10) PHP (php 5.6.4) Java (sun-

    正規表現がどれぐらい遅くなるか(計算量?)を調べてみた - 唯物是真 @Scaled_Wurm
  • 1