Вопрос

Какой у вас опыт работы со Stackless Python и PyQt?

Вопросы, которые я был бы рад, если бы люди затронули:

  1. Компиляция PyQt для Stackless:нужно ли компилировать PyQt специально для Stackless?является ли компиляция гладкой?проблемы с привязками и т.д.

  2. Стабильность:какие-нибудь неожиданные сбои, зависания, паузы и другие странности?

  3. Управление памятью:любые намеки на утечки памяти.сравнение оперативной памяти, необходимой для приложений PyQt без стека / Plain Vanilla PyQt

  4. Расширение прав и возможностей программной инженерии:очень краткое описание моделей управления потоком для приложений PyQt с автономным питанием

  5. Извлеченные уроки:любой усвоенный болезненный урок, ловушки, которых следует избегать, проблемы, требующие решения, с которыми вы, возможно, столкнулись

Будьте счастливы

Это было полезно?

Решение

Я попытался пойти по этому пути несколько месяцев назад и решил, что это не стоит затраченных усилий.

Мне удалось запустить двоичную установку PyQt (в Windows) для бесстековой версии Python, но я обнаружил, что мне пришлось вручную зайти и изменить некоторые файлы.Я получал сообщение об ошибке (извините, я забыл, что это было), и поиск в Google привел к решению, разработанному несколько лет назад.Новый код не включал старое исправление, поэтому изменение было не слишком сложным и (если я правильно помню) оно было на python, поэтому перекомпиляция не потребовалась.

Но для меня это было нарушением сделки.Обновления Qt выходят регулярно, как и обновления PyQt, и я не хотел постоянно исправлять код.Stackless и PyQt просто недостаточно используются вместе, чтобы их можно было тщательно проверить.Я обнаружил, что риск возникновения проблем, затрудняющих отладку, довольно высок.Это особенно верно, учитывая, что автор stackless перешел на PyPy.Позвольте мне заранее извиниться - я хотел бы, чтобы у меня были ссылки, которые я нашел для автора, останавливающего разработку на stackless python, и более подробная информация об ошибках, которые мне пришлось исправить - я не ожидал, что буду пересказывать подробности о переполнении стека.

Поэтому я решил запустить PyQt на ванильном Python вместо stackless.

Кстати, я также подумал, что смешивание сигналов / слотов с кодом без стекирования будет сбивать с толку, поскольку это совершенно разные методы решения многопоточных задач.

Удачи вам!

Другие советы

Если вы заинтересованы во всем этом из-за оптимизации скорости:

Возможно, вы захотите проверить Порожняя Ласточка ( Википедия здесь ).Google (поскольку YouTube на 100% состоит из Python) работает над JIT-компилятором для Python, который увеличит его скорость в 5-10 раз (что значительно приблизит его к скорости Java, чем текущая виртуальная машина).Самое приятное, что это будет работать со всем существующим кодом Python это означает, что вам не нужно беспокоиться обо всех проблемах, связанных с другими проектами оптимизации Python.

Я ожидаю, что если вы разрабатываете достаточно большой проект, чтобы оправдать необходимость оптимизации на низком уровне, вас устроит разработка на обычном Python, а затем замена текущей виртуальной машины, когда в производство выйдет Unloaden Swallow.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top