Size: a a a

2021 January 22

SS

Slava Savitskiy in ctodailychat
Aleksei Chernov
И поиском команды qt разработчиков
это да, я тут видел вакансии на ткацкую фабрику :))
источник

AS

Alexey Samoylov in ctodailychat
источник

AS

Alexey Samoylov in ctodailychat
вот бы еще такие проблемы поправить в электроне
источник

AS

Alexey Samoylov in ctodailychat
это ж просто стыдоба )
источник

МС

Михаил Серебренников... in ctodailychat
Вот ваще бесит эта хрень!
источник

E

Eugene in ctodailychat
Artur
и еще, обсуждения эстимейтов я бы точно рекомендовал оставлять за скоупом стэндапа. стэндап должен быть быстрым и радостным, как долгожданный секс. а вся тягомотина про сколько это займет, почему не успели и т.п. обычно навевает тоску
Да, все правильно, это должно быть уже оговорено на планировании спринта
источник

E

Eugene in ctodailychat
Artur
простите, что в ушедший поезд, но у меня есть две копейки про процесс стендапов. вместо "что делал" и "что буду делать" предлагаю обсуждать "что сделал" и "что планирую сделать". даже когда разбиение на задачи вышло недостаточно гранулярным и человек в течении нескольких митингов зависает на одной, в такой формулировке это позволяет поделиться реальным прогрессом со слушателями, чтобы не было ощущения, что ничего не движется.
Да, формулировка нравится
источник

E

Eugene in ctodailychat
Nikita Kulikov
Мне недавно руководитель прикольное упражнение сделал - “Укажи свои сильные и слабые стороны в перформансе”
Это было прикольно
А можно поподробнее, как сделать для всех, и как на это реагировать
источник

RK

Roman Kononov in ctodailychat
Nikita Kulikov
Мне недавно руководитель прикольное упражнение сделал - “Укажи свои сильные и слабые стороны в перформансе”
Это было прикольно
у нас каждые полгода такие "прикольные" упражнения :(
источник

NK

Nikita Kulikov in ctodailychat
Roman Kononov
у нас каждые полгода такие "прикольные" упражнения :(
Ну тут вроде норм
источник

NK

Nikita Kulikov in ctodailychat
Мне понравилось
источник

RK

Roman Kononov in ctodailychat
сама практика норм, я полностью поддерживаю, а вот что не норм это уже мое нытье которое граничит с НДА
источник

D

Deniss in ctodailychat
Привет.

Много читаю, сам не пишу. Знаю, что на этом канале есть Python специалисты. Хотел бы спросить вопрос связанный на тему memory leak/garbage collection.

На моем новом проекте используется Python. (Я сам не являюсь разработчиком Python). Один из сервисов приложения с CPython перевели на PyPy, чтобы сделать его более производительным.

Обнаружили, что сервис, запущенный на Pypy потребляет память так словно там есть memory leak. Однако, сервис запущен на PythonC работает иначе и с памятью все в порядке.
Немного изучив то как работает GC в PythonC/Pypy решил собрать метрики с помощью memory_profiler и понять в чем разница.
В итоге, обнаружил, что память затраченная на выполнение socketio.emit(source, payload, broadcast=True) только растет и практически не освобождается.

есть способы как заставить GC работать по другому, и я делал пару экспериментов, и все равно не добился результата.
Я не уверен, что запускать gc.collect() с периодичностью считается правильным.
Я также не уверен, что проблема в самом socketio package, и тем как он работает с PyPy.

Возможно нужно заставить работать GC правильнее, но мануально управлять памятью не хотелось бы.

Буду рад любым идеям.
источник

SS

Slava Savitskiy in ctodailychat
это правда, просто запускать garbage collection это плохо для перфоманса и вообще не гарантирует выполнение. я бы еще покопал, где собственно память выделяется и где должна освобождаться. все ли ресурсы освобождены, когда не нужны? сокет закрыт? буферы там всякие нативные. конечно, pythonc и pypy по памяти это два разных мира в плане managed memory.
источник

SS

Slava Savitskiy in ctodailychat
а garbage collection почему помогает, потому что он другую память собирает, или вы нашли что прям объекты, которые этот сокет выделил почистились?
источник

NK

Nikita Kulikov in ctodailychat
Slava Savitskiy
это правда, просто запускать garbage collection это плохо для перфоманса и вообще не гарантирует выполнение. я бы еще покопал, где собственно память выделяется и где должна освобождаться. все ли ресурсы освобождены, когда не нужны? сокет закрыт? буферы там всякие нативные. конечно, pythonc и pypy по памяти это два разных мира в плане managed memory.
System.gc() в джаве просто ставит флажок что неплохо бы было провести отчистку. Кажется, уместно после аллокации большого количества объектов
источник

SS

Slava Savitskiy in ctodailychat
кстати, если вы придете ко мне на собеседование, я вас спрошу что такое garbage collection root. почему-то никто не знает
источник

D

Deniss in ctodailychat
Slava Savitskiy
а garbage collection почему помогает, потому что он другую память собирает, или вы нашли что прям объекты, которые этот сокет выделил почистились?
да, с CPython имплементацией - все чистится
источник

SS

Slava Savitskiy in ctodailychat
Deniss
да, с CPython имплементацией - все чистится
а PyPy + gc.collect() ?
источник

D

Deniss in ctodailychat
Slava Savitskiy
а PyPy + gc.collect() ?
не пробовал еще, это следующий шаг
источник