Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2017 12:53:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Rodegast
Нахрена вешать на кнопку 100 сигналов что бы поменять одно текстовое поле?
Чтобы сделать такую нагрузку, под которой фреймворк начнёт падать. Стресс-тестирование это.
На учебных примерах на один-два сигнала ничего не заметно, но когда делаешь программу, тебе нужные широкие возможности, и вот тут-то выясняется, что не всё так гладко.
В C++ никаких проблем с этим.

Rodegast
> Эта строка может ещё закешироваться и передаваться потом одна и та же ссылка.
Не может.
В питоне, если строка одинаковая, она может кешироваться, чтобы заново память под неё не выделять. Вот ты создавай каждый раз новую строку, тогда кеширование просто физически невозможно.



Отредактировано py.user.next (Июнь 1, 2017 12:56:02)

Офлайн

#2 Июнь 1, 2017 14:21:55

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Думаю что дело в языке, а не в способе работы с графической библиотекой. Думаю для твоей цели смена языка полностью оправдана. PyQt здесь ни при чем. Просто python язык не быстрый. Попробуй увеличить число испускаемых сигналов в C++ во столько раз, во сколько C++ быстрее чем python в подобных задачах и ГИП также будет тормозить. (мое предположение)

Офлайн

#3 Июнь 1, 2017 14:30:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Rudium
Попробуй увеличить число испускаемых сигналов в C++ во столько раз, во сколько C++ быстрее чем python
Мне нужна сотня сигналов, обрабатываемых одновременно. Это немного. Ну, там, например, на экране точки разноцветные, мне нужно каждой точке посылать сигнал, чтобы она сменила свой цвет. Вот с питоном я призадумаюсь “а потянет ли он?”, тогда как в C++ есть уверенность, что можно начинать разработку, не раздумывая.



Отредактировано py.user.next (Июнь 1, 2017 14:31:28)

Офлайн

#4 Июнь 1, 2017 14:36:51

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Какой-то синтетический тест, созданный чтобы перегрузить python. А что за фреймворк?

Офлайн

#5 Июнь 1, 2017 14:38:31

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2749
Репутация: +  184  -
Профиль   Отправить e-mail  

PyQT и многопоточность

> Ну да, я просто писал сканер на питоне и закончилось всё вот так, что на кнопку нажимаешь а она не мгновенно действует, а с задержкой
> Чтобы сделать такую нагрузку, под которой фреймворк начнёт падать. Стресс-тестирование это.

Такой подход к разработке называется TDD головного мозга.

> В питоне, если строка одинаковая, она может кешироваться

Ты не знаешь чем передача по ссылке отличается от передачи по значению?



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Июнь 1, 2017 14:43:21)

Офлайн

#6 Июнь 1, 2017 14:43:36

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Rodegast
Такой подход к разработке называется TDD головного мозга.
Извини, py.user.next, но у меня есть смутное чувство что ты зря так грузишь именно графическую библиотеку, если тест не заключается именно в этом. Вынужден согласится со злобным Rodegast)))

Офлайн

#7 Июнь 1, 2017 15:21:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Rudium
Какой-то синтетический тест, созданный чтобы перегрузить python. А что за фреймворк?
Сотня сигналов - это ерунда, он должен, по идее, выдерживать 10000 сигналов.

Rodegast
Такой подход к разработке называется TDD головного мозга.
Это к TDD никак не относится. Мне не нужно писать программу, чтобы понять, как она будет работать. Я могу это просто представить, будто она уже написана. Новичок, конечно, будет сначала программу писать, а потом смотреть, что получилось, но на то он и новичок, что опыта нет и программ таких своих он не видел никогда, потому что это всё в первый раз происходит. :)

Rodegast
Ты не знаешь чем передача по ссылке отличается от передачи по значению?
Чтобы что-то передать, надо объект создать. Чтобы объект создать, надо выделить память. Чтобы выделить память, нужно потратить время. В питоне это всё медленно происходит, плюс ещё память потом высвобождается не сразу, а в отложенном режиме.

Rudium
Извини, py.user.next, но у меня есть смутное чувство что ты зря так грузишь именно графическую библиотеку
Видишь, сто точек отрисовать - для тебя уже проблема. В чём проблема-то? Мелкое задание.



Отредактировано py.user.next (Июнь 1, 2017 15:23:44)

Офлайн

#8 Июнь 1, 2017 15:23:24

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Чтобы нарисовать сто точек по клику, нужно создать один сигнал и обработать его в методе, который отрисует 100 точек.

Офлайн

#9 Июнь 1, 2017 15:25:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Rudium
Чтобы нарисовать сто точек по клику, нужно создать один сигнал и обработать его в методе, который отрисует 100 точек.
Какой один сигнал? Каждая точка зависит от своего собственного объекта, который ей сигнал посылает в любой момент. Ты просто не представляешь более-менее сложную программу, которая не просто тяп-ляп что-то там.



Офлайн

#10 Июнь 1, 2017 15:27:35

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQT и многопоточность

Разумеется я не представляю, какую сложность ты создал в своей программе. Откуда мне это знать, я же не Ванга.
Тяп-ляп, и из простой программы делаем сложную, которая начинает тормозить)))

Отредактировано Rudium (Июнь 1, 2017 15:33:40)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version