25MB/190,000行のテキストファイルをテキストウィジェットにダンプすると、プロセスはすばやく終了しますが、その後も1分後に50%CPUを使用するpython.exeが表示されます。ファイルが大きければ大きいほど、CPU使用率が0%に低下するまでに時間がかかります。別のテキストウィジェットに複数のファイルをロードすると、即座にウィジェットにロードされますが、CPUは50%のままで、バックエンドで何が行われてもGUIはひどく遅くなります。誰かがなぜCPUがまだ使用されているのか、そのテキストがウィジェット内にある場合のパフォーマンスへの影響の理由を私に説明することはできますか?それは何をする必要がありますか?これはどうですか?ファイルからテキストを挿入した後のTkinter CPUアクティビティ
from tkinter import *
file = r"C:\path\to\large\file.txt"
def doit():
with open(file, 'r') as f:
txt.insert('end', ''.join(f))
f.close()
main = Tk()
txt = Text(main)
txt.grid(row=0)
btn = Button(main, text="click here", command=doit)
btn.grid(row=1, columnspan=2)
main.mainloop()
ファイル全体をRAMに読み込む代わりに、行ごとにファイルを処理していたと思われたのかもしれません。 readlines()を試しましたが、同じ結果が得られます。
ワードラップをオフにすると、1分20秒でわずか19秒になります。これはTONを助けるでしょう。他のアイデアを自由に共有してください。 – sidnical
ノートブックを使用して、さまざまなテキストファイルの多いタブを読み込みます。それらの多くを読み込むとき、それはGUIが再び使用可能になるまで永遠にかかりました。今は1分足らずです。この変更はばかばかしい違いになりました。 – sidnical