質問するログイン新規登録

回答編集履歴

3

GCの影響について追記

2020/07/24 04:27

投稿

teamikl
teamikl

スコア8824

answer CHANGED
@@ -82,7 +82,10 @@
82
82
  20000 の部分の数を減らすと、destroy でも直ぐに終了できるようになるので、
83
83
  ウィジェットの数がパフォーマンスに影響する事があるのは解ると思います。
84
84
 
85
+ 追記2: 終了時ではなく、プレイ中にパフォーマンス低下するとしたら、
86
+ 大量のオブジェクトを生成した時のGCの影響が考えられます。
85
87
 
88
+
86
89
  ----
87
90
  追記: ウィジェット生成時の name 引数について
88
91
 

2

ウィジェット生成時のname引数について追記

2020/07/24 04:26

投稿

teamikl
teamikl

スコア8824

answer CHANGED
@@ -80,4 +80,17 @@
80
80
  ウィジェットを全て破棄しようとする為、ウィジェットの数に応じた時間が掛かります。
81
81
 
82
82
  20000 の部分の数を減らすと、destroy でも直ぐに終了できるようになるので、
83
- ウィジェットの数がパフォーマンスに影響する事があるのは解ると思います。
83
+ ウィジェットの数がパフォーマンスに影響する事があるのは解ると思います。
84
+
85
+
86
+ ----
87
+ 追記: ウィジェット生成時の name 引数について
88
+
89
+ ```python
90
+ label = tk.Label(root, name="a")
91
+ ```
92
+
93
+ とすると、上のコードでウィジェット数は 20002 -> 3 になります。
94
+ (同じnameを付ける事で、再生成を抑制)
95
+ 代わりにクラス初期化時の速度は遅くなるので、起動が遅く感じますが。
96
+ 一度に大量に生成しないなら、許容範囲位には収まるはずです。

1

補足

2020/07/24 00:06

投稿

teamikl
teamikl

スコア8824

answer CHANGED
@@ -42,6 +42,7 @@
42
42
 
43
43
  例えば、スコアを 20, 6, 66, 77, 40 で5回プレイした後に
44
44
  ウィンドウを閉じようとした時、応答に時間が掛かる、等。
45
+ (※ 補足追記: 例として挙げただけで、実際に試して重たくなったわけではありません)
45
46
 
46
47
  スコアは適当ですが、何回クリックしたか→
47
48
  関数が呼ばれる回数 → ウィジェットが生成される数を、大雑把に把握する為の目安です。