YUKI Hiroshi
yuki****@clear*****
Fri Oct 11 11:12:05 JST 2013
深読みさせてしまったようで、すみません。 破壊的メソッドを使っている事に深い理由はないです。 (破壊的な方が速度が速いという事自体、今まで知りませんでした。) 他の所でsortにブロックを渡している部分はあるので、そこでこの話を活かせな いかは考えてみたいと思います。 Kenji Okimoto wrote: > > - response_statuses.uniq! > > - response_statuses.sort! > > - response_statuses > > + statuses.uniq! > > + statuses.sort! > > 破壊的なメソッドを使っているので速度を求めているのだと思いますが、要素数が多い場合は、 > sort_by を使った方が速いです。 > 要素数が少ないと、違いを実感できないですが、ここがもしボトルネックになっているなら > sort_by を試してみてください。 > > sort_by の方が速いのは sort! よりも比較の回数が減るからです。 > 具体的にどのくらい減るのかはちょっと覚えてないです。 > > ちなみに以前インターンシップでやった BitClust で 10000 要素以上ある配列のソートを > sort から sort_by に変更したら約25%速くなりました(スクリプト全体で12分くらいかかって > いたのが9分くらいになった)。 > > On 2013年10月10日 15:07, YUKI Hiroshi wrote: >> Author >> YUKI Hiroshi <shimoda �� clear-code.com> >> Date >> 2013-10-10 15:07:15 +0900 (Thu, 10 Oct 2013) >> New Revision >> 2359b0778aaed87b0ce95c102f071c9157e13a00 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00> >> Message >> >> Use more generic name for attributes >> >> Modified files >> >> * lib/droonga/benchmark/gradual-runner.rb <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#diff-0> >> * lib/droonga/benchmark/runner.rb <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#diff-1> >> >> Modified: lib/droonga/benchmark/gradual-runner.rb (+12 -12) >> =================================================================== >> >> >> >> @@ -48,12 +48,12 @@module Droonga >> end >> >> def <<(result) >> - @response_statuses = nil >> + @statuses = nil >> @results[result.n_clients] = result >> end >> >> - def response_statuses >> - @response_statuses ||= prepare_response_statuses >> + def statuses >> + @statuses ||= prepare_statuses >> end >> >> def to_csv >> @@ -63,25 +63,25 @@module Droonga >> end >> >> private >> - def prepare_response_statuses >> - response_statuses = [] >> + def prepare_statuses >> + statuses = [] >> @results.each do |n_clients, result| >> - response_statuses += result.response_statuses.keys >> + statuses += result.statuses.keys >> end >> - response_statuses.uniq! >> - response_statuses.sort! >> - response_statuses >> + statuses.uniq! >> + statuses.sort! >> + statuses >> end >> >> def csv_header >> - Runner::Result.keys + response_statuses >> + Runner::Result.keys + statuses >> end >> >> def csv_body >> @results.values.collect do |result| >> result.values + >> - response_statuses.collect do |status| >> - result.response_status_percentages[status] || 0 >> + statuses.collect do |status| >> + result.status_percentages[status] || 0 >> end >> end >> end >> >> Modified: lib/droonga/benchmark/runner.rb (+18 -18) >> =================================================================== >> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L163> >> 164 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L164> >> 165 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L165> >> 166 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L166> >> 167 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L167> >> >> 168 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L168> >> 169 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L169> >> 170 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L170> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L185> >> 186 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L186> >> 187 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L187> >> 188 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L188> >> 189 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L189> >> >> 190 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L190> >> 191 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L191> >> 192 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L192> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L193> >> 194 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L194> >> 195 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L195> >> 196 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L196> >> 197 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L197> >> 198 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L198> >> >> >> 199 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L199> >> 200 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L200> >> 201 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L201> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L208> >> 209 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L209> >> 210 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L210> >> 211 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L211> >> 212 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L212> >> 213 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L213> >> >> >> 214 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L214> >> 215 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L215> >> 216 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L216> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L228> >> 229 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L229> >> 230 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L230> >> 231 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L231> >> 232 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L232> >> >> 233 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L233> >> 234 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L234> >> 235 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L235> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L247> >> 248 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L248> >> 249 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L249> >> 250 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L250> >> 251 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L251> >> >> 252 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L252> >> 253 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L253> >> 254 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L254> >> 255 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L255> >> 256 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L256> >> 257 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L257> >> 258 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L258> >> 259 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L259> >> >> >> >> 260 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L260> >> 261 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L261> >> 262 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L262> >> >> >> 263 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L263> >> 264 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L264> >> >> 265 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L265> >> 266 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L266> >> 267 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L267> >> 268 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L268> >> 269 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L269> >> >> >> >> 270 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L270> >> 271 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L271> >> >> 272 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L272> >> 273 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L273> >> 274 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1L274> >> >> >> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R163> >> 164 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R164> >> 165 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R165> >> 166 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R166> >> >> 167 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R167> >> 168 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R168> >> 169 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R169> >> 170 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R170> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R185> >> 186 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R186> >> 187 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R187> >> 188 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R188> >> >> 189 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R189> >> 190 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R190> >> 191 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R191> >> 192 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R192> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R193> >> 194 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R194> >> 195 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R195> >> 196 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R196> >> >> >> 197 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R197> >> 198 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R198> >> 199 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R199> >> 200 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R200> >> 201 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R201> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R208> >> 209 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R209> >> 210 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R210> >> 211 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R211> >> >> >> 212 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R212> >> 213 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R213> >> 214 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R214> >> 215 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R215> >> 216 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R216> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R228> >> 229 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R229> >> 230 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R230> >> 231 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R231> >> >> 232 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R232> >> 233 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R233> >> 234 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R234> >> 235 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R235> >> ... <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R247> >> 248 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R248> >> 249 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R249> >> 250 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R250> >> >> 251 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R251> >> 252 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R252> >> 253 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R253> >> 254 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R254> >> 255 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R255> >> 256 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R256> >> >> >> >> 257 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R257> >> 258 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R258> >> 259 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R259> >> 260 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R260> >> >> >> 261 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R261> >> 262 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R262> >> 263 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R263> >> >> 264 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R264> >> 265 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R265> >> 266 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R266> >> >> >> >> 267 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R267> >> 268 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R268> >> 269 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R269> >> 270 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R270> >> >> 271 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R271> >> 272 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R272> >> 273 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R273> >> 274 <https://github.com/droonga/drnbench/commit/2359b0778aaed87b0ce95c102f071c9157e13a00#L1R274> >> >> >> >> @@ -164,7 +164,7 @@module Droonga >> end >> >> class Result >> - attr_reader :n_clients, :duration, :response_statuses >> + attr_reader :n_clients, :duration, :statuses >> >> class << self >> def keys >> @@ -186,7 +186,7 @@module Droonga >> @results = [] >> @total_elapsed_time = 0.0 >> @elapsed_times = [] >> - @response_statuses = {} >> + @statuses = {} >> end >> >> def <<(result) >> @@ -194,8 +194,8 @@module Droonga >> >> @results << result >> >> - @response_statuses[result[:status]] ||= 0 >> - @response_statuses[result[:status]] += 1 >> + @statuses[result[:status]] ||= 0 >> + @statuses[result[:status]] += 1 >> >> @elapsed_times << result[:elapsed_time] >> @total_elapsed_time += result[:elapsed_time] >> @@ -209,8 +209,8 @@module Droonga >> @queries_per_second ||= total_n_requests.to_f / @duration >> end >> >> - def response_status_percentages >> - @response_status_percentages ||= prepare_response_status_percentages >> + def status_percentages >> + @status_percentages ||= prepare_status_percentages >> end >> >> def min_elapsed_time >> @@ -229,7 +229,7 @@module Droonga >> "Total requests: #{total_n_requests} " + >> "(#{queries_per_second} queries per second)\n" + >> "Status:\n" + >> - response_status_percentages.collect do |status, percentage| >> + status_percentages.collect do |status, percentage| >> " #{status}: #{percentage} %" >> end.join("\n") + "\n" + >> "Elapsed time:\n" + >> @@ -248,27 +248,27 @@module Droonga >> def clear_cached_statistics >> @total_n_requests = nil >> @queries_per_second = nil >> - @response_status_percentages = nil >> + @status_percentages = nil >> @min_elapsed_time = nil >> @max_elapsed_time = nil >> @average_elapsed_time = nil >> end >> >> - def prepare_response_status_percentages >> - http_status_percentages = [] >> - @response_statuses.each do |status, n_results| >> + def prepare_status_percentages >> + status_percentages = [] >> + @statuses.each do |status, n_results| >> percentage = n_results.to_f / total_n_requests * 100 >> - http_status_percentages << {:percentage => percentage, >> - :status => status} >> + status_percentages << {:percentage => percentage, >> + :status => status} >> end >> - http_status_percentages.sort! do |a, b| >> + status_percentages.sort! do |a, b| >> (-1) * (a[:percentage] <=> b[:percentage]) >> end >> - response_status_percentages = {} >> - http_status_percentages.each do |status| >> - response_status_percentages[status[:status]] = status[:percentage] >> + status_percentages = {} >> + status_percentages.each do |status| >> + status_percentages[status[:status]] = status[:percentage] >> end >> - response_status_percentages >> + status_percentages >> end >> end >> end >> >> >> >> _______________________________________________ >> Groonga-commit mailing list >> Groonga-commit �� lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/groonga-commit >> > > -- 結城 洋志 <YUKI Hiroshi> E-mail: yuki �� clear-code.com 株式会社クリアコード 〒113-0033 東京都文京区本郷3-27-12 本郷デントビル2階 TEL : 03-6231-7270 FAX : 03-6231-7271 WWW : http://www.clear-code.com/