2017-06-22 5 views
2

私はruby-profを使用して、私がRubyで構築している小さな2DゲームエンジンのCPU時間がどこにあるのか把握しています。メインKernel#`のエントリを除いて、すべてここで正常に見えます。 Rubyのドキュメントが、これはサブシェルで実行されているコマンドのSTDOUTを取得するための関数であることを示唆している:ruby​​-profがリソースカーネルとして "Kernel#` "を表示しているのはなぜですか?

image of ruby docs for command

Measure Mode: wall_time 
Thread ID: 7966920 
Fiber ID: 16567620 
Total: 7.415271 
Sort by: self_time 

%self  total  self  wait  child  calls name 
28.88  2.141  2.141  0.000  0.000  476 Kernel#` 
10.72  1.488  0.795  0.000  0.693 1963500 Tile#draw 
    9.35  0.693  0.693  0.000  0.000 1963976 Gosu::Image#draw 
    6.67  7.323  0.495  0.000  6.828  476 Gosu::Window#_tick 
    1.38  0.102  0.102  0.000  0.000  2380 Gosu::Font#draw 
    0.26  4.579  0.019  0.000  4.560 62832 *Array#each 
    0.15  0.011  0.011  0.000  0.000  476 Gosu::Window#caption= 
    0.09  6.873  0.007  0.000  6.867  476 PlayState#draw 
    0.07  0.005  0.005  0.000  0.000  476 String#gsub 
    0.06  2.155  0.004  0.000  2.151  476 GameWindow#memory_usage 
    0.06  4.580  0.004  0.000  4.576  1904 Hash#each 
    0.04  0.003  0.003  0.000  0.000  476 String#chomp 
    0.04  0.038  0.003  0.000  0.035  476 Gosu::Window#protected_update 
    0.04  0.004  0.003  0.000  0.001  3167 Gosu::Window#button_down? 
    0.04  0.005  0.003  0.000  0.002  952 Enumerable#map 
    0.03  0.015  0.003  0.000  0.012  476 Player#update 
    0.03  4.596  0.002  0.000  4.593  476 <Module::Gosu>#scale 
    0.03  0.002  0.002  0.000  0.000  5236 Fixnum#to_s 
    0.03  7.326  0.002  0.000  7.324  476 Gosu::Window#tick 
    0.03  0.003  0.002  0.000  0.001  952 Player#coord_facing 
    0.03  4.598  0.002  0.000  4.597  476 <Module::Gosu>#translate 
    0.02  0.002  0.002  0.000  0.000  952 Array#reject 

任意の提案をこれが起こっかもしれない理由を?間接的に何とか呼び出されない限り、自分のコードで使用していないとかなり確信しています。そのようなことを探し始める場所は不明です。

答えて

1

私は私の問題を解決しました。問題の原因は、ruby-prof#{}ショートカット(「文字列補間」とも呼ばれます)の使用法をどのように分類しているかです。私はこれらのショートカット内で実行される半集中デバッグロジックを持っていました。

私のデバッグテキストをオフにすると、私の問題は解決します。

関連する問題