質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

0回答

978閲覧

Rubyでボトルネックを探す方法を教えて下さい

yuki_90453

総合スコア326

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/11/09 08:59

編集2022/01/12 10:55

過去に、何度かボトルネックと思われる部分について、こちらで質問させて頂いたのですが、未だ解決できず困っております。
ボトルネックと思われる部分をベンチマークで計測してみたのですが、思っていた程遅くなく他にも原因があると思われます。(しかし、そのメソッドをコメントアウトすると実行時間が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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問