@Fsharp_chat

Страница 279 из 772
Vladimir
22.08.2017
10:53:56
так причем тут апдейт) нет проблемы с апдейтами)

после них все равно сборка делается, а потом ничего уже не апдейтится

Nikolay
22.08.2017
10:54:48
Нужно подходить со стороны уменьшения стоимости вызова GC,так как даже если получится его дотянуть до конца обстрела, при увеличении RPS всё будет ломаться)

Vladimir
22.08.2017
10:55:10
Это да, обещают его увеличить к концу недели

Google
Vladimir
22.08.2017
10:59:05
Пик это посути одна единственная сборка 0го уровня

Ну и сейчас стоит GCServer и GCConcurrent

https://stackoverflow.com/questions/6005865/prevent-net-garbage-collection-for-short-period-of-time
Это решение скорее всего все равно не прокатит, я же только на свой код могу его поставить, а сборка может и в коде кестрела пройти точно так же

Roman
22.08.2017
11:08:33
Я бы на вашем месте первым делом избавился от создания лишних строк при чтении Body и десериализации

для этого использовал бы десериакизацию из стрима напрямую

не читал бы Body как строку, а брал риквест из контекста и читал напрямую в десериализатор

Aleksander
22.08.2017
11:14:57
Это решение скорее всего все равно не прокатит, я же только на свой код могу его поставить, а сборка может и в коде кестрела пройти точно так же
У меня есть ощущение, что вызовы этих методов могут быть где угодно и распространяются на весь процесс вцелом. Т.е. если вызовешь nogc в аппликейшен старте, сборки мусора не будет совсем. Только вот не факт что памяти хватит)

Roman
22.08.2017
11:17:41
И зачем проверка на содржание null в строке в getStringFromRequest?

Vladimir
22.08.2017
11:21:06
И зачем проверка на содржание null в строке в getStringFromRequest?
это такой хак для выполнения условий задачи, если значения нет, все норм, если оно null, то посылать 400

Roman
22.08.2017
11:22:29
на гетах нету body
Там же и посты я так понимаю

Vladimir
22.08.2017
11:23:25
Там же и посты я так понимаю
да, посты во 2й фазе, там всего 100RPS, так что это норм. Плюс я строки записываю в словарь чтобы потом сразу строки и отдавать. Ну и условие с null

Но на самом деле я сейчас думаю избавиться от словаря строк, глядишь тогда памяти хватит)

Google
Vladimir
22.08.2017
11:25:41
точнее уже не словаря а массива и не одного а сразу всех трех

Roman
22.08.2017
11:26:11
А в гетах обязательно меилбокс использовать?

Vladimir
22.08.2017
11:26:49
в гетах он и не используется

Roman
22.08.2017
11:28:35
в гетах он и не используется
Понял, промахнулся

Vasily
22.08.2017
11:29:50
Если убирать массивы, можно на сериализации много потерять

О, я нашел косяк на апдейте, кстати

Vladimir
22.08.2017
11:32:16
это да. надо проверять

Vasily
22.08.2017
11:32:33
Там лишняя сериализация

Vladimir
22.08.2017
11:34:21
да, согласен)

спасибо)

Vasily
22.08.2017
11:34:38
Ну и с проверкой на валидность надо что-то делать

По факту, тебе создание объекта нужно только для проверки на валидность

Что не есть гуд

Vladimir
22.08.2017
11:36:03
да, согласен)
хотя я передумал) подскажи плиз где лишняя

По факту, тебе создание объекта нужно только для проверки на валидность
не только, для дальнейших гетов с фильтрами тоже нужна

Vasily
22.08.2017
11:36:23
serializedCollection.[id] <- serializeObject(updatedEntity)

У тебя уже боди есть

Запроса

Vladimir
22.08.2017
11:37:05
ну так здесь я как раз записываю строку в массив строк, чтобы оттуда читать

Vasily
22.08.2017
11:37:15
Еще раз

Google
Vladimir
22.08.2017
11:37:17
боди это не полная сущность

Vasily
22.08.2017
11:37:18
Боди есть

Vladimir
22.08.2017
11:37:27
там могут быть два поля из пяти

Vasily
22.08.2017
11:37:35
А, там паршиал апдейт?

Vladimir
22.08.2017
11:37:37
угу

Vasily
22.08.2017
11:37:56
Тогда лучще совсем по-другому делать

Сущности там flat?

Vladimir
22.08.2017
11:38:35
да

Vasily
22.08.2017
11:38:57
Десериализация в словарь по идее поможет

Vladimir
22.08.2017
11:39:17
а потом на гетах их собирать из словаря?

Vasily
22.08.2017
11:39:25
Из словарей

Vladimir
22.08.2017
11:39:49
думаю это сильно замедлит геты

Vasily
22.08.2017
11:40:19
Вполне возможно,кстати

Интересно, насколько сериализация словаря быстрее сериализации объекта?

Учитывая, что ее можно руками написать

Без рефлекшна

Vladimir
22.08.2017
11:41:51
кстати

можно же и так руками сериализацию написать)

объектов

Vasily
22.08.2017
11:42:12
Это должно сильно ускорить

Google
Vasily
22.08.2017
11:42:28
Только там StringBuilder надо

Чтобы быстрее было

Десериализхацию тоже можно руками

Vladimir
22.08.2017
11:43:30
десереализацию сложно

там проверять типы придется

Vasily
22.08.2017
11:43:44
Не

У тебя же роуты

На каждый тип свои

Vladimir
22.08.2017
11:44:27
я про данные что в Body пришли или в урле

Vasily
22.08.2017
11:44:40
Ну по набору свойств

Vladimir
22.08.2017
11:44:42
их придется проверять на валидность

Vasily
22.08.2017
11:45:04
Там все просто довольно

Vladimir
22.08.2017
11:45:37
ну хотя может и правда

тогда можно будет рекорды вместо классов)

Vasily
22.08.2017
11:46:01
Ты можешь проверить валидность только по набору свойств, больше никак

Vladimir
22.08.2017
11:46:05
ой

структуры

Vasily
22.08.2017
11:46:20
Структуры, да

Пример есть json юзера?

Чтобы далеко не лазить

Google
Vladimir
22.08.2017
11:46:56
ага

https://github.com/sat2707/hlcupdocs/blob/master/data/FULL/data/users_13.json

правда будут больше 16 байт, микрософт не рекомендует делать стуктуры больше 16ти, но хз

Vasily
22.08.2017
11:50:35
Структуры тебе особо не нужны, по идее

Vladimir
22.08.2017
11:50:59
ну они помогут gc разгрузить

Vasily
22.08.2017
11:51:03
Кстати

У нас есть размер юзера ведь

Есть же ограничения

Поэтому можно вообще

Marshal.GCAlloc

И вперед

Roman
22.08.2017
11:52:24
Еще от регулярных выражений надо избавляться

Vasily
22.08.2017
11:53:12
Короче, есть шансы сделать с++ ников

Vladimir
22.08.2017
11:53:38
))

Vasily
22.08.2017
11:54:05
Идея следующая

Делаешь Marshal.AllocateHGlobal

На память под пользователей

Локейшны

И что там еще

Vladimir
22.08.2017
11:55:06
визиты

я с маршалингом не работал, расскажи в чем смысл что хочешь сделать

Vasily
22.08.2017
11:56:36
Смысл в том, что ты последовательно пишешь бинарные данные в определенные области памяти

Страница 279 из 772