過去に、何度かボトルネックと思われる部分について、こちらで質問させて頂いたのですが、未だ解決できず困っております。
ボトルネックと思われる部分をベンチマークで計測してみたのですが、思っていた程遅くなく他にも原因があると思われます。(しかし、そのメソッドをコメントアウトすると実行時間が10分の1になります。)
そこでコード全体をからボトルネックを探すべくプロファイルを使用してみました。
参考ページに掲載されていた結果と全く違って重い部分が%で出ると思っていたのですが、下記のような計測結果が大量出来てしまいます。
該当のソースコードを掲載しようと考えたのですが seleniumというテストツールを多用して具体的なアドバイスをしずらいと考えたので今回は掲載していません。
(下記の未解決の質問には掲載されております。)
アドレス;https://teratail.com/questions/54488
正直に言いますとプロファイル結果の見方がわからないので教えて頂けないでしょうか?
このように、プロファイル結果が複数出る場合、ファイルを複数実行している事になるのでしょうか?
(サイトに掲載されていたのは、何が何%で負担を掛けているというような結果だったのですが、私のプロファイル結果とは全く違いますので)
###プロファイルを使用した結果
ruby
1 2* indicates recursively called methods 3Measure Mode: wall_time 4Thread ID: 70323731989160 5Fiber ID: 70323731989000 6Total: 55.033607 7Sort by: self_time 8 9 %self total self wait child calls name 10 0.00 0.000 0.000 0.000 0.000 1 Kernel#sleep 11 0.00 55.034 0.000 55.033 0.000 1 <Module::Timeout>#timeout 12 0.00 0.000 0.000 0.000 0.000 1 Thread#name= 13 0.00 0.000 0.000 0.000 0.000 1 <Class::Thread>#current 14* indicates recursively called methods 15Measure Mode: wall_time 16Thread ID: 70323732139000 17Fiber ID: 70323732138820 18Total: 91.148064 19Sort by: self_time 20 21 %self total self wait child calls name 22 0.00 0.000 0.000 0.000 0.000 1 Kernel#sleep 23 0.00 91.148 0.000 91.148 0.000 1 <Module::Timeout>#timeout 24 0.00 0.000 0.000 0.000 0.000 1 Thread#name= 25 0.00 0.000 0.000 0.000 0.000 1 <Class::Thread>#current 26 27* indicates recursively called methods 28Measure Mode: wall_time 29Thread ID: 70323723838500 30Fiber ID: 70323723838340 31Total: 73.148271 32Sort by: self_time 33 34 %self total self wait child calls name 35 0.00 0.000 0.000 0.000 0.000 1 Kernel#sleep 36 0.00 73.148 0.000 73.148 0.000 1 <Module::Timeout>#timeout 37 0.00 0.000 0.000 0.000 0.000 1 <Class::Thread>#current 38 0.00 0.000 0.000 0.000 0.000 1 Thread#name= 39 40* indicates recursively called methods 41Measure Mode: wall_time 42Thread ID: 70323731591260 43Fiber ID: 70323731591100 44Total: 55.056880 45Sort by: self_time 46 47 %self total self wait child calls name 48 0.00 0.000 0.000 0.000 0.000 1 Kernel#sleep 49 0.00 0.000 0.000 0.000 0.000 1 <Class::Thread>#current 50 0.00 55.057 0.000 55.057 0.000 1 <Module::Timeout>#timeout 51 0.00 0.000 0.000 0.000 0.000 1 Thread#name= 52 53* indicates recursively called methods 54Measure Mode: wall_time 55Thread ID: 70323723806640 56Fiber ID: 70323723806480 57Total: 55.047954 58Sort by: self_time 59 60 %self total self wait child calls name 61 0.00 0.000 0.000 0.000 0.000 1 Kernel#sleep 62 0.00 55.048 0.000 55.048 0.000 1 <Module::Timeout>#timeout 63 0.00 0.000 0.000 0.000 0.000 1 Thread#name= 64 0.00 0.000 0.000 0.000 0.000 1 <Class::Thread>#current
あなたの回答
tips
プレビュー