Форум сайта python.su
RodegastЧтобы сделать такую нагрузку, под которой фреймворк начнёт падать. Стресс-тестирование это.
Нахрена вешать на кнопку 100 сигналов что бы поменять одно текстовое поле?
RodegastВ питоне, если строка одинаковая, она может кешироваться, чтобы заново память под неё не выделять. Вот ты создавай каждый раз новую строку, тогда кеширование просто физически невозможно.
> Эта строка может ещё закешироваться и передаваться потом одна и та же ссылка.
Не может.
Отредактировано py.user.next (Июнь 1, 2017 12:56:02)
Офлайн
Думаю что дело в языке, а не в способе работы с графической библиотекой. Думаю для твоей цели смена языка полностью оправдана. PyQt здесь ни при чем. Просто python язык не быстрый. Попробуй увеличить число испускаемых сигналов в C++ во столько раз, во сколько C++ быстрее чем python в подобных задачах и ГИП также будет тормозить. (мое предположение)
Офлайн
RudiumМне нужна сотня сигналов, обрабатываемых одновременно. Это немного. Ну, там, например, на экране точки разноцветные, мне нужно каждой точке посылать сигнал, чтобы она сменила свой цвет. Вот с питоном я призадумаюсь “а потянет ли он?”, тогда как в C++ есть уверенность, что можно начинать разработку, не раздумывая.
Попробуй увеличить число испускаемых сигналов в C++ во столько раз, во сколько C++ быстрее чем python
Отредактировано py.user.next (Июнь 1, 2017 14:31:28)
Офлайн
Какой-то синтетический тест, созданный чтобы перегрузить python. А что за фреймворк?
Офлайн
> Ну да, я просто писал сканер на питоне и закончилось всё вот так, что на кнопку нажимаешь а она не мгновенно действует, а с задержкой
> Чтобы сделать такую нагрузку, под которой фреймворк начнёт падать. Стресс-тестирование это.
Такой подход к разработке называется TDD головного мозга.
> В питоне, если строка одинаковая, она может кешироваться
Ты не знаешь чем передача по ссылке отличается от передачи по значению?
Отредактировано Rodegast (Июнь 1, 2017 14:43:21)
Офлайн
RodegastИзвини, py.user.next, но у меня есть смутное чувство что ты зря так грузишь именно графическую библиотеку, если тест не заключается именно в этом. Вынужден согласится со злобным Rodegast)))
Такой подход к разработке называется TDD головного мозга.
Офлайн
RudiumСотня сигналов - это ерунда, он должен, по идее, выдерживать 10000 сигналов.
Какой-то синтетический тест, созданный чтобы перегрузить python. А что за фреймворк?
RodegastЭто к TDD никак не относится. Мне не нужно писать программу, чтобы понять, как она будет работать. Я могу это просто представить, будто она уже написана. Новичок, конечно, будет сначала программу писать, а потом смотреть, что получилось, но на то он и новичок, что опыта нет и программ таких своих он не видел никогда, потому что это всё в первый раз происходит. :)
Такой подход к разработке называется TDD головного мозга.
RodegastЧтобы что-то передать, надо объект создать. Чтобы объект создать, надо выделить память. Чтобы выделить память, нужно потратить время. В питоне это всё медленно происходит, плюс ещё память потом высвобождается не сразу, а в отложенном режиме.
Ты не знаешь чем передача по ссылке отличается от передачи по значению?
RudiumВидишь, сто точек отрисовать - для тебя уже проблема. В чём проблема-то? Мелкое задание.
Извини, py.user.next, но у меня есть смутное чувство что ты зря так грузишь именно графическую библиотеку
Отредактировано py.user.next (Июнь 1, 2017 15:23:44)
Офлайн
Чтобы нарисовать сто точек по клику, нужно создать один сигнал и обработать его в методе, который отрисует 100 точек.
Офлайн
RudiumКакой один сигнал? Каждая точка зависит от своего собственного объекта, который ей сигнал посылает в любой момент. Ты просто не представляешь более-менее сложную программу, которая не просто тяп-ляп что-то там.
Чтобы нарисовать сто точек по клику, нужно создать один сигнал и обработать его в методе, который отрисует 100 точек.
Офлайн
Разумеется я не представляю, какую сложность ты создал в своей программе. Откуда мне это знать, я же не Ванга.
Тяп-ляп, и из простой программы делаем сложную, которая начинает тормозить)))
Отредактировано Rudium (Июнь 1, 2017 15:33:40)
Офлайн