タグ

セルクマとrubyに関するNabetaniのブックマーク (8)

  • どう書くで見る ruby の便利機能 - Qiita

    この記事は Ruby Advent Calendar 2016の20日目の記事のつもりで書いている。 Advent Calendar というものに参加するのは初めてなので緊張している。 実務ではあまり ruby を使っていないので、私は自分が主催しているどう書く( https://yhpg.doorkeeper.jp/ )での ruby の使われ方を書こうと思う。 思いついた順なので、ごちゃごちゃするけど気にしない方向で。 Array#transpose 行列ではないものをtransposeできる言語が他にあるかどうか知らないんだけど、transposeは便利。 x方向で処理するプログラムだけを用意しておいて、y方向の処理は、データを transpose したものを渡すことで済ますとか。 あるいは、平面的なものを回転するときに役に立つ。 2次元配列をreverseしてからtranspose

    どう書くで見る ruby の便利機能 - Qiita
    Nabetani
    Nabetani 2016/12/25
    人生初のアドベントカレンダーで緊張した。
  • JRuby は実行時最適化によって 50倍以上速くなり、CRuby を華麗に抜き去る場合がある。 - Qiita

    先日、 JRuby は JIT によって 10倍ぐらい速くなる場合がある。 という記事を書いたんだけど、測りなおしたらそんなもんじゃなかったことがわかった。 まずはグラフ。対数目盛に注意。 わけのわからないところに横線があるが、一2倍になっている。 今回は、【「とある無駄な計算」10回セット】を200回行った。 「とある無駄な計算」は、前回と同じ。 前回は「とある無駄な計算」を20回だったので、計算の規模は百倍になる。 前回は平均をとったが、今回は平均はとっていない。 という辺りが前回との違い。 グラフを見ると、あまり出入りのない CRuby に対し、JRuby は出入りが多い。 グラフが凸凹しているのは、測定しているのが生の時間だから、他のプロセスがCPUを専有していたのかもしれないんだけど、JRuby と CRuby の傾向の違いは読み取れると言っていいと思う。 横軸の回数は、【10

    JRuby は実行時最適化によって 50倍以上速くなり、CRuby を華麗に抜き去る場合がある。 - Qiita
    Nabetani
    Nabetani 2015/08/30
    しつこく測ったら、JRuby がruby を華麗に抜き去っていた。
  • JRuby は JIT によって 10倍ぐらい速くなる場合がある。 - Qiita

    昨日書いたベンチマークの記事 http://qiita.com/Nabetani/items/2d054512c45990dd1235 で、JRuby の場合の測定時間の変化が面白かったので、変化だけを調べてみた。 結論:JITすごい。 追記: もう少し調べた記事を書いた。 JRuby は実行時最適化によって 50倍以上速くなり、CRuby を華麗に抜き去る場合がある。を参照 やってみたことは、 「ちょっと時間がかかる処理を、時間を計りながら20回行う」というプログラムをJRubyで3回、CRuby で1回 動かす、という作業。 で。 まずはグラフ。 JRuby に注目すると。 どの trial も初回が一番遅い。 2回目はいきなり半分ぐらいの時間で処理が終わる。 5回目で遅くなり、6回目以降は大きな山はないもののどんどん速くなる。 10〜15回目ぐらいで落ち着く感じ。 5回目の山は、JI

    JRuby は JIT によって 10倍ぐらい速くなる場合がある。 - Qiita
    Nabetani
    Nabetani 2015/08/28
    JITによってどんどん速くなるさまをグラフにしてみた。
  • jruby9000 が ruby2.2.3 よりも3倍以上速いこともある。

    以前、 http://qiita.com/Nabetani/items/9776d99d09476d07c9e2 と http://qiita.com/Nabetani/items/47d357cc7f80f5c42f0d でベンチマークの記事を書いたんだけど、2.2.3 とか jruby9000 が出ているのでまた勝手なベンチマークをとってみた。 当初ここに書いた記事では JRuby が Java7 になっていたので、Java8で測りなおして追記した。 「3倍以上」より「4倍以上」が適切なようなので、タイトルも変えてみた。 まずはグラフ。 横軸は時間なので、長いほうが遅い。 simple_lambda の方は、jruby がやけに頑張っている。 jじゃないrubyでは、新しくなるほど速くなっていて、開発者の皆様ありがとうございますという感じ。 対照的に、complex_string では

    jruby9000 が ruby2.2.3 よりも3倍以上速いこともある。
    Nabetani
    Nabetani 2015/08/28
    JRuby が Java7 だったので、Java8 で測りなおして追記した。Java8 速い。
  • ruby の 文字列の連接 - Qiita

    p( "x" "Y" ) #=> "xY" p( "x" 'Y' ) #=> "xY" p( 'x' 'Y' ) #=> "xY" String#+ はどうあがいてもメソッド呼び出しになる(と思う)ので、実行時の効率という点で、文字列の連接は意味がある。その辺りは Java や(たぶん)perl とは事情が違う。 で。 連接の結果がリテラルになるのであって連接自体が何かの操作というわけではないので、括弧は書けない。

    ruby の 文字列の連接 - Qiita
    Nabetani
    Nabetani 2015/08/15
    文字列の連接のある言語緩募中。あと。D言語追加した。
  • 神奈川Ruby会議でペアプロ問題出した - Codeへの愛とCuriosity

    先日行われた神奈川Ruby会議01 http://regional.rubykaigi.org/kana01/ 。 ここで行われた最初のセッションがペアプロ大会 http://regional.rubykaigi.org/kana01/contents/02_pair_programing.html だったんだけど、ここで出す問題を作るという大役を仰せつかった。 いろいろ悩んだ結果、ひねりのない、ストレートなコンピュータサイエンス問題にした。 当日までと当日は、問題を用意したり、当日悩んでいる人にヒントを出したり、前に出て解説したり。 必死というほどでもないんだけど、あんまり周りは見えていなくて。 終わるまで気づかなかったんだけど、出題される側の方々のなかに、コミッタ様を始めとして数多くのスーパープレイヤーがいて、なんかすごい空間だったんだなと、畏れ多いなと、いう感じがした。 幸い。私の実

    神奈川Ruby会議でペアプロ問題出した - Codeへの愛とCuriosity
    Nabetani
    Nabetani 2015/01/26
    セルクマ。ペアプロ問題の解題とか。
  • 遠い世界の数式

    例えば。 4*5+6&7|8 は、ruby では (((4*5)+6)&7)|8 なので 10 だけど、この問題では 4*(5+(6&(7|8))) と評価するので、 44 となる。 入力 入力は「 4*5+6&7|8 」のような文字列。 各項は、すべて整数。全部十進数。 演算子は上の表にある *, +, &, | のいずれかしか現れない。 括弧もないし、単項プラスや単項マイナスもない。余分な空白もない。 出力 出力は、評価結果の十進数表現の文字列。 44 こんな感じ。 ヒント ヒント1 ヒント2 補足 不正な入力に対処する必要はない。 サンプルデータ # 入力 期待

    Nabetani
    Nabetani 2015/01/18
    実装例は ans.html にあるよ。
  • ruby の改行 - Qiita

    ruby は改行がどうなるのかが大変わかりにくい。 まあ、こうなるだろうと想像できる感じに書くと想像通りになるので普通は困らないんだけど、微妙なケースが結構あって、そういうときにはほんとうに全然わからない。 微妙だな、と思わないように書けばいいんだけど、他人のソースに微妙なパターンがあるとドキドキする。 私自身はほとんど利用したことがないけど、ruby にはバックスラッシュによる行継続がある。 あるんだけど、C/C++ の行継続とは異なり、文脈によって行継続したりしなかったりする。 というわけで、いろいろ試した。 全て、ruby 2.1.3p242 での動作結果。 + による結合 p(3+4) #=> 7 ※ 当たり前 p(3+ 4) #=> 7 ※ ここで改行してもよい p(3 +4)#=> エラー。なんでだかわからない。p(3;+4) で 4 が出ると思ってた。 p((3 +4))#=

    ruby の改行 - Qiita
    Nabetani
    Nabetani 2014/10/06
    ruby の改行の取り扱いを調べてみた。
  • 1