Найти - Пользователи
Полная версия: PyQT и многопоточность
Начало » GUI » PyQT и многопоточность
1 2 3 4 5 6 7
py.user.next
Rodegast
Нахрена вешать на кнопку 100 сигналов что бы поменять одно текстовое поле?
Чтобы сделать такую нагрузку, под которой фреймворк начнёт падать. Стресс-тестирование это.
На учебных примерах на один-два сигнала ничего не заметно, но когда делаешь программу, тебе нужные широкие возможности, и вот тут-то выясняется, что не всё так гладко.
В C++ никаких проблем с этим.

Rodegast
> Эта строка может ещё закешироваться и передаваться потом одна и та же ссылка.
Не может.
В питоне, если строка одинаковая, она может кешироваться, чтобы заново память под неё не выделять. Вот ты создавай каждый раз новую строку, тогда кеширование просто физически невозможно.
Rudium
Думаю что дело в языке, а не в способе работы с графической библиотекой. Думаю для твоей цели смена языка полностью оправдана. PyQt здесь ни при чем. Просто python язык не быстрый. Попробуй увеличить число испускаемых сигналов в C++ во столько раз, во сколько C++ быстрее чем python в подобных задачах и ГИП также будет тормозить. (мое предположение)
py.user.next
Rudium
Попробуй увеличить число испускаемых сигналов в C++ во столько раз, во сколько C++ быстрее чем python
Мне нужна сотня сигналов, обрабатываемых одновременно. Это немного. Ну, там, например, на экране точки разноцветные, мне нужно каждой точке посылать сигнал, чтобы она сменила свой цвет. Вот с питоном я призадумаюсь “а потянет ли он?”, тогда как в C++ есть уверенность, что можно начинать разработку, не раздумывая.
Rudium
Какой-то синтетический тест, созданный чтобы перегрузить python. А что за фреймворк?
Rodegast
> Ну да, я просто писал сканер на питоне и закончилось всё вот так, что на кнопку нажимаешь а она не мгновенно действует, а с задержкой
> Чтобы сделать такую нагрузку, под которой фреймворк начнёт падать. Стресс-тестирование это.

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

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

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

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

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

Rudium
Извини, py.user.next, но у меня есть смутное чувство что ты зря так грузишь именно графическую библиотеку
Видишь, сто точек отрисовать - для тебя уже проблема. В чём проблема-то? Мелкое задание.
Rudium
Чтобы нарисовать сто точек по клику, нужно создать один сигнал и обработать его в методе, который отрисует 100 точек.
py.user.next
Rudium
Чтобы нарисовать сто точек по клику, нужно создать один сигнал и обработать его в методе, который отрисует 100 точек.
Какой один сигнал? Каждая точка зависит от своего собственного объекта, который ей сигнал посылает в любой момент. Ты просто не представляешь более-менее сложную программу, которая не просто тяп-ляп что-то там.
Rudium
Разумеется я не представляю, какую сложность ты создал в своей программе. Откуда мне это знать, я же не Ванга.
Тяп-ляп, и из простой программы делаем сложную, которая начинает тормозить)))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB