機能 #915
closed
Retriever::Model関連でURIを使っている部分を、Addressable::URIに置き換える
Added by toshi_a 初音 almost 8 years ago.
Updated almost 8 years ago.
Description
3.5から、要所要所でURIを要求しているが、できるだけAddressable::URIを利用するように書き換える。
Addressable::URIでないと、ドメイン名にunicode文字を利用しているURLを扱えないようなので(IRI)、Twitterで利用するには都合が悪い。
あと、queryをHashで取り出せるやつと、URI Templeteを使ってみたさがある。
受け入れ側はURIでも受け入れ、渡す側はAddressable::URIを利用し、URIを渡すコードでも問題なく動くようにする。
- Status changed from 新規 to 実装待ち
適当にやったら常にCPU100%食うようになった。プロファイル掛けたらAddressable::URI#to_s がめちゃくちゃCPUリソースを食ってる。
多分そもそもto_sが遅くて、それがCellRendererMessageによって頻繁に叩かれるのでそれが問題なんだと思う。URI::Genericでも同じ状況になってたはずだが、こちらはto_sが高速だったんだろう
仕事終わったらちゃんとコード読んでどうするべきか考える
簡単に早くするのは無理そう。ModelがAddressable::URIを返すのはやりすぎで、多くはURIの機能で十分なので、Addressable::URIが必要な時だけそれを使うようにしたほうが良さそう。
殆どの場合、Model#uriの結果に対してはto_sしか呼んでいないので、別のclassでwrapしてやってうまくサボれないかな
- Status changed from 実装待ち to 終了
Also available in: Atom
PDF