2016-09-06 29 views
1

asyncioのPythonを理解する:私は私のプログラムをしようとしている時間の〜67%を費やしていることがわかりますのPythonを実行すると、ベースのプログラムasyncioながら、私はPythonのプロファイラの出力を理解しようとしているプロファイラ出力

Python3 asyncio profiler output

をスレッドロックを取得します。

  1. asyncioプログラムでこれは正常ですか?私のアプリケーションはシングルスレッドで、私はワーカースレッドに作業を遅らせず、コンソールに最小限のロギングをします。

  2. 私のアプリはセレクトコールで21%を費やします。これは、実行時間の20%がアイドル状態(イベントやコールバックの発生を待っている)に費やされていることを意味しますか?

答えて

1

すべてのスレッドからデータを収集するデバッガを使用しているようです。 条件変数の獲得を待つことは、新しいタスクのためにスレッドプール内で待機していることを意味します。

selectで費やされた時間は、再びアイドル待機を意味しますが、この場合はネットワークアクティビティを待機しています。

関連する問題