Вот хороший фрагмент, который я использовал несколько раз. Его действительно маленький и аккуратный. Он поддерживает все распространенные селектора css.
Проблема заключается в том, что текстовый вывод не является отладчиком.
Я просто попробовал его в своей Q6600 (разогнанной 3GHz) системе, и мои цифры еще хуже. Но его легко увидеть, что они идут по более длинному выходному тексту.
Я попытался запустить его с помощью
1000 итераций => 7,8 секунд 2000 итераций => 28 , 5 секунд 3000 итераций => 70 секунд
В прошлом я делал некоторые вещи с низким уровнем TK, и я знаю, что виджет TkText сохраняет текст в структуре BTree. Добавление текста персонажа - это один из худших способов сделать, но это похоже на то, что делает IDLE. Обычным способом является улавливание большего количества данных и добавление большего фрагмента текста.
Удивительно, если вы печатаете «x \n», вывод выполняется намного быстрее. 3000 итераций за 7 секунд и 10000 за 19 сек.
Таким образом, проблема, безусловно, связана с добавлением отдельных символов в существующие строки. Программист IDLE не знал, как работает TkText.
Итак, советую добавить в текст новые символы перевода или вывести более крупные фрагменты, а не только один символ «x».
Проблема заключается в виджетах Tkinter Text и его неэффективном управлении очень длинными строками, и вы его создаете. Вы заметите, что, хотя любая часть очень длинной строки видна, все прокрутки дьявольски медленны.
print
. – Terry Jan Reedy 11 October 2015 в 22:16