2015-01-13 3 views
1

Хорошо. Я использую Python 3.3.2 и IDLE. Я просто играл в интерактивной оболочке, отображая символьные представления чисел, и заметил, что когда я удаляю символ новой строки, он сильно влияет на производительность. Так я это делаю.Второй аргумент функции print(), вызывающий повышение производительности

for x in range(2056):print(chr(x),end='') 

Без второго аргумента печати() функцией он работает плавно и занимает всего несколько секунд, чтобы завершить, но при добавлении конца = «» это, как если бы кто-то печатают символы очень медленно и занимает хорошую минуту завершить. Интересно, связано ли это с моей настройкой или кто-нибудь еще заметил это, а также то, является ли оно специфичным для IDLE, или любая информация об этом вообще будет оценена.

+0

IDLE имеет в целом плохую производительность, его нельзя использовать для реальных тестов производительности. –

ответ

1

Это связано с тем, что IDLE необходимо обернуть текст в размер окна, что намного проще, если ваши заявления печати содержат разрывы строк. Чем больше фрагмент текста без текста, тем дольше он обертывается. Поскольку IDLE хранит историю всего вашего сеанса, он может накапливать довольно много текста в своем окне, которое, возможно, необходимо будет обернуть на регулярной основе.

IDLE кажется особенно медленным в сравнении с другими программами.

0

В моем собственном опыте IDLE довольно медленный, особенно с разрывами строк. В консоли есть небольшая, но неприемлемая разница:

$ time python -c 'for x in range(2056):print(chr(x),end="")' > /dev/null 
python -c 'for x in range(2056):print(chr(x),end="")' > /dev/null 0.02s user 0.02s system 98% cpu 0.041 total 
$ time python -c 'for x in range(2056):print(chr(x))' > /dev/null 
python -c 'for x in range(2056):print(chr(x))' > /dev/null 0.03s user 0.01s system 92% cpu 0.036 total 

Попробуйте вместо IPython попробовать. Это почти мгновение для обеих команд, и это намного лучше, чем IDLE.

Смежные вопросы