Slides for my talk at rubyconfau 2014
Slides for my talk at rubyconfau 2014
I was watching a video by Aaron Patterson, where he highlighted a few Ruby performance tuning tools. I thought it would be useful to write a quick post to gather them all together in the same place. Benchmark The classic tool for testing if one block of code is faster than the other in Ruby is the Benchmark module. It comes built in, and is pretty simple to use: require 'benchmark' h = { foo: 1, b
24 Dec 2013 Ruby 2.1 is shipping with rb_profile_frames(), a new C-api for fetching ruby backtraces. The api performs no allocations and adds minimal cpu overhead making it ideal for profiling, even in production environments. I've implemented a sampling callstack profiler for 2.1 called stackprof with this API, using techniques popularized by gperftools and @brendangregg. It works remarkably well
Finding out why a particular spec is slow might be tricky. Thanks to Aman Gupta, we have stackprof - a sampling call-stack profiler for ruby 2.1+. I have used it a lot while working on RubyBench and finding slow parts of code in Rails stack, but never in specs. Yesterday I had to find out why my RSpec example was slow and I wrote this snippet: {% highlight ruby %} spec/spec_helper.rb RSpec.configu
stackprof を使えばrspecのプロファイリングが出来る戸言うことを知ったので、 早速テストでためしてみた。 Gemfileに追加して そしてbundle install。 around hookでテストの開始前後での時間を計測します。 stackprofの設定は環境変数で渡します。 ということで、いかのようにspec_helper.rbに追加。 そして実行 指定したディレクトリにプロフファイリング結果がdumpされる プロファイル結果を分析 この場合 ActiveSupport::Callbacks#run_callbacks が重そう。 こんな感じで重い箇所を洗い出して改善していける。 参考にしたページ Profiling RSpec examples with Stackprof railsアプリでstackprofを使ってボトルネックを探す + JSON::Schema(2
Factory Girl 恥ずかしながら、いままでテストに使用するデータはデータマッパーを使ったスクリプトを作成して対処していました。 Factory Girlでは簡単に登録できるんですね。RSpecを使用する際に親和性が高いみたいです。 何はともあれGemfileを書いてbundle install gem 'factory_girl_rails', '4.1.0' モデルを登録する シミュレートするモデルを登録する。 factoryメソッドにuserシンボルが渡されると、それをUserモデルのものと認識してくれます。 ファイルはspec/factories.rbなどに書きます。ここにあるファイルをRSpecが自動的に読み込んでくれます。 今回はオブジェクトをDBに登録するまでを処理します。 FactoryGirl.define do factory :user do name "hog
最近の趣味は「Haskellはいいぞ」と呟くかTwitter Search: Haskellを巡回して を押して回ることです 毎日巡回しているとHaskellに入門しようとするも細かいところに引っかかって前に進めないでいる人をちらほら見かけます。今回はそんな見回りの知見を活かしてHaskell初心者が躓きやすいポイントをまとめてみたいと思います。 1. 入門書は何がいいの? それはもうすごいH本一択でしょう!…と言いたいところですが時々不満の声を聞くこともあります。確かにすごいH本こと『すごいHaskellたのしく学ぼう!』は世界一わかりやすいHaskell入門書であることは間違いないと思いますが、逆に内容が平易すぎるため記述が冗長だと感じたり読み終わっても何か自分で作れるようになった気がしなかったりするかもしれません。なので僕は「プログラミングも初心者でHaskellから入門してみたい」
2017/01/17追記 Herokuのプランが変更されたようです。 詳しくは、コメント欄を参照してください。 追記ここまで みなさん、bot活用していますか? どんどん便利なスクリプトを追加し、日々の業務や生活になくなてはならない存在になっていると思います。しかしながら、botをどこで運用するかという悩ましい問題があります。少し前ならheroku一択でしたが、herokuのプランが変更され24時間完全に無料で運用することが難しくなりました。 herokuで運用する問題点 herokuは素晴らしい環境です。が、無料でbotをつくるとなると話は少し変わってきます。 30分アクセスしなければスリープ 24時間連続で動かすことができない(6時間のスリープ) hubot-heroku-keepaliveによって30分のスリープの問題はいいですが、24時間稼働できないのはどうしようもありません。まあ
メルカリには「専用出品」という文化があります。 大量に出品されている、「○○様専用」という名前の謎の商品たちが、その「専用出品」文化が生み出したものの代表です。 そんな「専用出品」という文化そのものや、「専用出品」文化と真っ向から対立する「横取り」文化との攻防について、ここで解説したいと思います。 「専用出品」文化は、メルカリにおいて、かなり大きな存在になっています。 メルカリも一応店のためにやってみようとしたけど、層が合わなすぎて断念したんだよなあ…。なぜ!普通に購入ボタン押したら買えるシステムのものを!専用出品とかわけわからんローカルルール作ってめんどくさくするのか!— なつひろ (@natsuhiro_nj) 2016年3月18日 メルカリのさ ○○様専用ってのよくわからないんだけどどういうあれなの— 蒼蝶 (@www555001) 2016年3月18日 目次 1. メルカリの出品名
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く