0

合計時間でソートすると、2 番目に実行時間が長い関数は "{組み込みメソッド mainloop}" ? pstats_viewer.py で同じエントリを見てクリックすると、次のように表示されます。

Function Exclusive time Inclusive time  Primitive calls Total calls Exclusive per call  Inclusive per call

Tkinter.py:359:mainloop 0.00s   561.03s (26.3%) 1   1   0.00s   561.03s

これは何を意味するのでしょうか?

編集

私のコードのより長い実行からの cProfile 出力の一部です。ODE を解決すればするほど、メインループにより多くの時間が費やされます。狂ってる!CUDA カーネルの分岐分岐またはホスト - GPU メモリ転送のいずれかによって、ランタイムが強制終了されていると思いました。神よ、私は恐ろしいプログラマーです!

どうすれば Tkinter に実行時間の多くを奪わせることができたのでしょうか?

これは、私のコードのより長い実行からの私の cProfile のスニペットです。 その Tkinter.py メインループは、実行時間を何時間も費やしています!

4

2 に答える 2

1

mainloopTkinterのイベント ループです。イベントを待機し、イベントが発生すると処理します。

これは、すべての GUI だけでなく、Twisted や Tornado などの他のイベント駆動型フレームワークでも見られる繰り返しの現象です。

于 2013-10-09T01:32:48.163 に答える
-1

まず、次のようにタブをスペースに変更すると、見やすくなります。

Function                    Exclusive time  Inclusive time  Primitive calls  Total calls    Exclusive per call     Inclusive per call

Tkinter.py:359:mainloop     0.00s           561.03s (26.3%)       1              1               0.00s                  561.03s

排他時間とは、プログラム カウンターがそのルーチンにあった時間を意味します。トップレベルのルーチンの場合、これは実質的にゼロであると予想されます。

包含時間とは、ルーチンが呼び出すすべてのルーチンに時間を含めることを意味します。トップレベルのルーチンの場合、これは実質的に 100% であると予想されます。(26.3% の意味がわかりません。)

速度を上げたい場合は、1) 包括時間の割合が高く、2)何かできるアクティビティを見つける必要があります。

このリンクは、私が使用する方法を示しています。

何かを高速化した後でも、包括時間の割合が高いものを見つけることができますが、全体の経過時間は短くなります。最終的には、まだ高い割合を占めるものもありますが、それを改善する方法を理解することはできなくなります。

于 2013-10-09T13:37:13.607 に答える