
Daniil
28.02.2017
09:14:00
Привет всем. Я тут пишу свой опэнсорс проект на питоне. Можете глянуть и полить говном? Любая критика на вес золота

Zart
28.02.2017
09:14:06
хук зца тащит за собой примерно всё

Cykooz
28.02.2017
09:14:31
На продакшене то пофиг на утечку - там один раз запуситл прилжение и оно работает. А вот в тестах его надо 100500 раз создавать и удалять

Zart
28.02.2017
09:14:38
Ок, ушёл читать
http://www.fanstatic.org/en/1.0a5/library.html#bonus-a-minified-version и т.д.

Google

Stanislav
28.02.2017
09:14:58
линк в студию

Zart
28.02.2017
09:15:05
я правда не фоннат фанстатика, но он один из самых известных вроде как

Cykooz
28.02.2017
09:15:20
Фанстатик вроде заглох, его не пилят больше

Zart
28.02.2017
09:15:35
я хз что там в моде теперь

Cykooz
28.02.2017
09:15:37
Последний раз когда думал его юзать - они сами что то другое рекомендовали взять

Alex ?
28.02.2017
09:16:10

Roman
28.02.2017
09:17:14
Ну а как ты убиваешь wsgi приложение в своих тестах?

Cykooz
28.02.2017
09:17:52

Zart
28.02.2017
09:18:10
да ну нафиг

Cykooz
28.02.2017
09:18:26
Есть подозрение на ViewDeriverInfo - что то я его часто видел на дереве backref-ов

Roman
28.02.2017
09:18:38
Есть маза, не пирамида "течёт", а не подумал раньше о Regestry ...

Cykooz
28.02.2017
09:19:08
Они ведь эти ViewDeriverInfo вроде как в 1.7 запилили. Попробую проверить на версии 1.6

Google

Roman
28.02.2017
09:19:48
Подчищай за собой

Cykooz
28.02.2017
09:20:12
У меня ничего нет, вообще супер-пупер минимальное приложение пирамиды.
Даже ни одной моей вьюшки нету

Zart
28.02.2017
09:20:36
(cp27) D:\>py
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyramid.config
>>> def get_app(**settings):
... config = pyramid.config.Configurator(settings=settings)
... return config.make_wsgi_app()
...
>>> while 1:
... app = get_app()
...
смотрю в таск менеджер - размер памяти сидит как влитой

Cykooz
28.02.2017
09:21:49

Zart
28.02.2017
09:22:01
добавил hook_zca. разницы нет

Cykooz
28.02.2017
09:22:16
Может в их реализации paste какой то гвоздь

Zart
28.02.2017
09:22:26
1.8.1
запихай в общем создание в бесконечный цикл и смотри на расход памяти

Anton
28.02.2017
09:23:46

Cykooz
28.02.2017
09:24:28

Roman
28.02.2017
09:25:51
Вообще такой наброс прокатил бы на заре пирамиды.

Cykooz
28.02.2017
09:27:32
Ну вот блин с Deferred это вообще явный факап у них
class Deferred(object):
def __init__(self, func):
self.func = func
@reify
def value(self):
return self.func()
def resolve(self):
return self.value
После того как value была вызвана, там явно уже больше нет необходимости в self.func, которая как оказалось может содержать ссылку на конфигуратор.
Пару строк в этот код для удаления self.func - и конфигуратор больше не утекает

Zart
28.02.2017
09:29:06
а для чего этот костыль...

Cykooz
28.02.2017
09:29:15
Хотя возможно дело в том что сам Deferred у меня почему то утекает, если бы не утекал, то и с конфигуратором было бы всё ок
А хер знает - это конфигуратор такое создаёт. Видимо для вот этой своей "двухфазной" конфигурябильности

Zart
28.02.2017
09:30:44
э

Cykooz
28.02.2017
09:31:02
Вот тут оно юзается config.add_view()

Google

Zart
28.02.2017
09:31:03
скорее всего для новой фичи

Cykooz
28.02.2017
09:32:02
discriminator = Deferred(discrim_func)
...
view_intr = self.introspectable('views',
discriminator,
view_desc,
'view')
...
def discrim_func():
# We need to defer the discriminator until we know what the phash
# is. It can't be computed any sooner because thirdparty
# predicates/view derivers may not yet exist when add_view is
# called.

Zart
28.02.2017
09:33:39
так... а я не на тот процесс смотрел похоже

Cykooz
28.02.2017
09:33:44
Ну в общем я наверное не ошибся - это из-за predicates/view derivers появилось

Zart
28.02.2017
09:38:16
на тривиальном течет, да. проверил до 1.4.х - везде течет 8)

Cykooz
28.02.2017
09:39:48
Печалька.
Толи никто не пишет функциональных тестов под пирамидку, либо все проекты на ней мелкие и не вызывают большой утечки в тестах.

Zart
28.02.2017
09:41:42
добавление gc.collect в цикл ничо не дало

H
28.02.2017
09:41:54
я пишу сразу хорошо, зачем мне тесты? ?

Zart
28.02.2017
09:42:25
1.1 тоже тёк. 1.0 проверять не буду, бо там вебоб надо древний

H
28.02.2017
09:43:32
я б зобанил еще

Andy
28.02.2017
09:43:34
Вас зобанють, а ты не пиши новых

Daniil
28.02.2017
09:43:47
Так попросили же линк

Zart
28.02.2017
09:43:52

Daniil
28.02.2017
09:44:04
Ок, удалил

Zart
28.02.2017
09:44:07
но ему пизда

H
28.02.2017
09:44:20
:))

Daniil
28.02.2017
09:44:30
Отнюдь в правилах не написано, что ссылки на опэнсорс нельзя

Google

Andy
28.02.2017
09:45:00

Zart
28.02.2017
09:45:19

Alexey
28.02.2017
09:45:27
:D

H
28.02.2017
09:45:38

Zart
28.02.2017
09:46:05
сеошников и прочих накруточников и напёрсточников не жалуют

Daniil
28.02.2017
09:46:51
Ну я не юзаю его и денег с него не имею.
Так что на свой страх и риск

Admin
ERROR: S client not available

H
28.02.2017
09:47:53
мы тебе пулреквесты пришлем в кутузку :)

Alexey
28.02.2017
09:48:00
=D

Andy
28.02.2017
09:48:17

Daniil
28.02.2017
09:50:21
Да, но раз авторизировались, так почему бы не делать все однотипными запросами. Апи и бота разделять не очень, так как и то, и то допиливается. Пока удобней все в одном месте держать.
Все равно спасибо.

Zart
28.02.2017
09:50:45
любопытно
import, config=Configurator()
while 1: config.make_wsgi_app() # не течет
while 1: config = Configurator() # не течет
while 1: config = Configurator(); config.make_wsgi_app() # течет
это каг?

Stanislav
28.02.2017
09:52:03

Daniil
28.02.2017
09:52:32
Скину в лс, тут админы rude

Andy
28.02.2017
09:53:11
:D

H
28.02.2017
09:53:39
цп в лс!

Google

Eugine
28.02.2017
10:06:58
вери рюд админы

Alexey
28.02.2017
10:09:00

Stanislav
28.02.2017
10:09:09
нет ты что какие статьи
точно не я
более того не понимаю почему похоже что я

Alex Milushev
28.02.2017
10:09:53

Stanislav
28.02.2017
10:09:56
каокй то треш же

Alexey
28.02.2017
10:10:24
а нахуя?
Если есть руд админы к которым цп бегают показывать — то пусть будет руд девопс.

Eugine
28.02.2017
10:10:53
ты же расстраивался, что для натурального джангоеба нет работы :( один фуллстек

Alex Milushev
28.02.2017
10:11:11
просто Я слабо себе представляю rude devops, так как даже со старта слать нахуй это норма

Stanislav
28.02.2017
10:11:46
Другими словами получилась ситуация, что если ты не живешь в Москве, Санкт-Петербурге и не собираешься ехать их «покорять», то тебе практически негде получить свою первую работу.
ну все так да

Alexey
28.02.2017
10:12:02

Alex Milushev
28.02.2017
10:12:03

Stanislav
28.02.2017
10:12:07
у моих ебенях и фулстека нет

Alex Milushev
28.02.2017
10:12:41

Stanislav
28.02.2017
10:13:23
и речь была о другом
о массовом вымирании чистого бекенда вообще

Alexey
28.02.2017
10:13:51

Stanislav
28.02.2017
10:14:23
я не понимаю почему аватарка туфля на каблуке. вы что пидоры ?