
Сергей
01.04.2017
17:49:22

Pichugin
01.04.2017
18:36:15
+

Nikolay
01.04.2017
18:39:59

Андрей
01.04.2017
18:43:14

Google

Nikolay
01.04.2017
18:44:12
А обычные экшены это твой сайт?

Андрей
01.04.2017
18:45:06
Да так как весь сайт не хочу делать как spa для экономии времени. Так как в приложении не весь функционал будет использоваться

Nikolay
01.04.2017
18:46:07
А зачем тебе единая аутентификация?

Андрей
01.04.2017
18:47:07
Мне кажется не удобно будет дублировать ее и в куках и в токене?

Nikolay
01.04.2017
18:48:41
Апи используют JWT, обычные контроллеры - куки
Да и JWT кстати вроде пофиг где хранить, можешь хранить в куках

Андрей
01.04.2017
18:50:31
Окей спасибо, как вариант рассмотрю такой подход. Если у кого буду другие мнения рад выслушать буду

Nikolay
01.04.2017
18:51:53
Да и вообще возможно правильным бы решением было отделить WebAPI от MVC сайта

Андрей
01.04.2017
18:52:59

Nikolay
01.04.2017
18:53:26
MyProject.Web
MyProject.Api
MyProject.Data

Андрей
01.04.2017
18:53:35
А ну так я и планировал

Nikolay
01.04.2017
18:53:49
Ну а тогда в чём заморочка с авторизацией?
Используй для Api JWT, а для сайта куки, вообще проблем не будет

Google

Андрей
01.04.2017
18:55:19
Погуглю еще как их лучше генерировать в asp net и наверное буду действительно хранить в куке jwt

Nikolay
01.04.2017
18:57:05
Если что, мои слова не руководство к действию, у меня опыта в вебе не так много)
Это просто мои размышления

Андрей
01.04.2017
18:58:22
Я понял, все равно спасибо, с такой точки зрения не думал еще

Летучая
01.04.2017
19:10:13
Господа, никто не сталкивался с оч большим потреблением памяти Newtonsoft.JSON? DefaultContractResolver при десериализации что-то там у себя очень активно кеширует, да так активно, что приложение за 200 метров юзать начинает рам

Nikolay
01.04.2017
19:12:46
А у тебя json сильно большой?

Му
01.04.2017
19:13:29
25 см

Летучая
01.04.2017
19:15:14
кб всм

Pichugin
01.04.2017
19:16:03
:D

Летучая
01.04.2017
19:16:46
Читаю потоково, как и рекомендует Ньютон
using (var httpClient = new HttpClient())
using (var stream = await httpClient.GetStreamAsync(urlString))
using (var streamReader = new StreamReader(stream))
using (var jsonReader = new JsonTextReader(streamReader))
{
JsonSerializer serializer = new JsonSerializer();
return serializer.Deserialize<T>(jsonReader);
}
гугление про датаконтрактресолверы чот не дало ответа про кеширование, опции в параметрах десериализации (типа IgnoreCache) тоже нет. мб знаете, чо это он так и как с этим бороться?

Nikolay
01.04.2017
19:20:07
Я 50мб парсил из файла, без проблем
А в итоге он у тебя его парсит?
Или какой-нибудь Out of Memory?

Летучая
01.04.2017
19:20:53
да, конечно, работать-то всё работает
но память течёт смерть как

Nikolay
01.04.2017
19:21:39
Попробуй выкачать свой json в строку и её распарсить
Или из файла

Google

Летучая
01.04.2017
19:21:46
сделал штук 20 прогонок и всё, 100 мегов нет

Nikolay
01.04.2017
19:22:00
Через JsonConvert.Deserialize кажется

Летучая
01.04.2017
19:22:18

Nikolay
01.04.2017
19:22:48
Подожди
Мб у тебя serializer течёт?
Хотя он должен высвободиться

Летучая
01.04.2017
19:23:07
https://github.com/Worldbeater/VkLibrary/blob/master/VkLib.Core/Vkontakte.cs вот соус
стримы пока не комитил

Nikolay
01.04.2017
19:23:45
Попробуй через JsonConvert.DeserializeObject
А
Вижу

Летучая
01.04.2017
19:24:27
оч много тестил с ним и в общем всё равно DefaultContractResolver жиреет

Летучая
01.04.2017
19:30:29
кстати говоря, на пике >2.63 MB
а приложение в это время юзает 200 мегабайт (судя по диспетчеру задач и профайлеру VS)
это типа 2.63 используемых, а 180 — управляемая куча?

Nikolay
01.04.2017
19:32:50
А ты попробуй без VS запустить

Летучая
01.04.2017
19:37:09

Gid
01.04.2017
19:45:28

Nikolay
01.04.2017
19:46:26
Хмм
А ты уверен что у тебя десериализация кушает память?

Летучая
01.04.2017
19:46:49
Ну

Nikolay
01.04.2017
19:46:51
Мб у тебя контролы утекают?

Google

Летучая
01.04.2017
19:47:03
Есть же heap dump
и дотмемори, и студия
И там жирнее всего и больше всего места занимают вот этот контрактресолвер
иии
RuntimeType+RuntimeTypeCache

Nikolay
01.04.2017
19:48:13
Так оно у тебя всего 2мб кушает
Попробуй вызов оставить, но данные не использовать, чтобы точно уверенным быть

Летучая
01.04.2017
19:49:25
Ща
thx

Admin
ERROR: S client not available

Летучая
01.04.2017
19:59:13

Nikolay
01.04.2017
20:04:54
У тебя объекты утекают
Чего не должно быть
Оу
Я у тебя в сурсах косяк нашёл

Летучая
01.04.2017
20:06:06
????

Nikolay
01.04.2017
20:06:10
using (HttpClient httpClient = new HttpClient())
Так делать не нужно

Летучая
01.04.2017
20:06:42
Убрать юзинг?

Google

Nikolay
01.04.2017
20:06:53
Не
HttpClient не нужно создавать на каждый запрос

Летучая
01.04.2017
20:07:38
спс, ща вправлю

Nikolay
01.04.2017
20:07:42
http://stackoverflow.com/questions/22560971/what-is-the-overhead-of-creating-a-new-httpclient-per-call-in-a-webapi-client/22561368#22561368
Вот сравнение производительности:
SendTextMessageAsync without reusing HttpClient:
00: 00: 00.3019223
SendTextMessageAsync with reusing HttpClient:
00: 00: 00.0847740

Летучая
01.04.2017
20:08:37
красота. спасибо!

Nikolay
01.04.2017
20:11:39
Ещё бы посоветовал вместо полного имени типа использовать var, но тут уж на вкус и цвет
Блин, не знаю даже в чём проблема, в том коде реально утекать нечему

Летучая
01.04.2017
20:30:19
чудеса конечно
ладно, спасибо огромное за подсказки! запросики с постоянным хттпклиентом оч быстрее отправляются

Matviei
01.04.2017
20:45:37
Ребят
Обьсните нубу
Чем отлицаются первичные конструкторы от обычных ?
Отличаются*

Nikolay
01.04.2017
20:49:33
Просто более сокращённая запись
Аргументы, которые указаны у тебя в первичном конструкторе будут доступны в классе как private поля

Igor
01.04.2017
21:03:18

Nikolay
01.04.2017
21:05:33
Не знаю
Пока вроде нет

Sergey
01.04.2017
21:21:03
Господи неужели Xamarin вшит в VS 2017
Эта группа больше не существует