Study further more

進捗出します

【Rails Code Reading 2回目】Reduce memory allocations #41335

Reduce memory allocations

今日読んでみたRailsのPRはここです。

  github.com  

タイトルは、メモリーアロケーションを減らすとのこと。

これはどんな実装が見れることやら。

と思って読んでみたらこんな感じでした。

DEC2HEX  = (0..255).to_a.map { |i| ENCODE % i }.map { |s| s.force_encoding(US_ASCII) }

DEC2HEX  = (0..255).map { |i| (ENCODE % i).force_encoding(US_ASCII) }

rangeオブジェクトを、to_aでArrayに変換せずに直接mapで扱うというもの。

benchableというgemでベンチマークを取得すると、確かに20%弱ほどメモリアロケーションが減ってるとのこと。

大したことない実装ですが、ちゃんと根拠を示しているのはさすが世界的なOSSですね。

コミッターからは、HotPath(よく呼ばれる場所?)ではないが、まあniceでしょうみたいなコメントと共にmergeされていました。

ちなみに、この箇所の実装は、ActionDispatchのルーティングで入ってきたユーザーからのリクエストパスをURIエンコードするモジュールで、 US_ASCII文字を入手するための配列を初期化してるみたいです。