@CSharpChatЭта группа больше не существует

Страница 591 из 1888
Max
18.03.2017
23:53:22
Async wrode

Ну или поток-в-потоке

Gid
18.03.2017
23:56:01
Ну или поток-в-потоке
Таки тоже заметил

Ну норм

Google
Gid
18.03.2017
23:56:08
Глубже надо идти

Max
18.03.2017
23:56:47
Ну про async я вообще не понял, но я недоджуниор

Gid
18.03.2017
23:59:12
Я недомидл но меме не понял

БЛЯТЬ

anton
19.03.2017
00:00:16
поток в потоке ;) ну и стайл async () => await это тоже стиль

Gid
19.03.2017
00:00:18
Увидел первую строчку

Все терь я начал орать

Сложные ночные мемес

Тут конечно все спят

Но кто-то работал с вебпурифай

Мб

Или с buffer

Или с buffer
Эт сервис если что

Google
Max
19.03.2017
00:01:49
Все по машинам

)

anton
19.03.2017
00:02:47
Эт сервис если что
неа.. не работал

Сложные ночные мемес
я минут 5 разглядывал этот код.. думал показалось.. теперь жду понедельника, что бы автору в глаза посмотреть :)

Gid
19.03.2017
00:17:12
Не понял вообще сразу

Выглядит все нормально

Вопрос

А зачем он сет мин тредс делает

Вначале метода

100

Это сакральный ритуал?

anton
19.03.2017
00:30:13
я пока еще не понял :) но кажется таким образом делает лимит на 100 одновременных коннектов

но я пока не уверен что оно так работает

Aler
19.03.2017
01:08:50
Коллеги, а как думаете, что лучше (я ленивый жоп): проверить экземпляр через foo is IDisposable и затем кастить или кастить через as IDisposable и проверять на null?

Михаил
19.03.2017
02:03:23
мне кажется правильней сначала провести проверку =)

Andrew
19.03.2017
03:56:58
Aler
19.03.2017
03:57:12
2-е

Google
Andrew
19.03.2017
03:58:59
А сделать и замерить через таймеры? Вообще самая норм идея - откастить ДО того как оно попадёт в критичный к скорости блок

Я могу но попозже и на моно или коре

Спинной мозг говорит что проверка на нулл быстрее

2-е
У тебя совсем рандомные данные?

Aler
19.03.2017
04:02:23
что ты имеешь ввиду?

Vladimir Bondaryuk
19.03.2017
04:03:13
Почему нельзя сделать через as и один раз на null а не два

Andrew
19.03.2017
04:03:15
что ты имеешь ввиду?
Про откастить до? Или рандомность данных?

Aler
19.03.2017
04:04:43
Почему нельзя сделать через as и один раз на null а не два
я это предложил как раз. Я сейчас бенч напишу и узнаю наверняка. Это просто не супер критичное место сейчас

просто пишут и так, и так, а как правильнее - хз

я, кстати, думаю, что is окажется лучше

Vladimir Bondaryuk
19.03.2017
04:06:12
В таком случае тебе прежде чем вызвать dispose надо будет ещё раз проверить на null

Andrew
19.03.2017
04:06:12
Если типы твои - данные не рандомные, реализуешь/наследуешь интерфейс и кастить не надо вообще

Andrew
19.03.2017
04:09:40
я, кстати, думаю, что is окажется лучше
is/as - это платформа, или сахар? Если там IsAssignableFrom под капотом, то одна фигня по скоросии

Vladimir Bondaryuk
19.03.2017
04:10:44
Если типы твои - данные не рандомные, реализуешь/наследуешь интерфейс и кастить не надо вообще
Ну если зашел вопрос о cast то скорее всего там что-то другое приходит или просто object, тяжело так ответить

Aler
19.03.2017
04:11:22
забавный факт

что если проверка проходит, то быстрее, чем если нет

а разницы в as\is нету



Дмитрий
19.03.2017
04:12:15
is/as - это платформа, или сахар? Если там IsAssignableFrom под капотом, то одна фигня по скоросии
насколько я помню, платформа компилится в isclass / castclass (вроде, я не помню наверняка)

Aler
19.03.2017
04:12:29
вот верхний и нижний вариант разницы не дают никакой

Google
Aler
19.03.2017
04:12:49
is case Undisposable ticks: 50453 Disposable ticks: 32857 as case Undisposable ticks: 52209 Disposable ticks: 33577

ну хотя есть небольшая

связано с работой со стеком наверно

Andrew
19.03.2017
04:13:31
ну хотя есть небольшая
проверь скорость в случае если не скастилось

Vladimir Bondaryuk
19.03.2017
04:13:38
As внутри выглядит: expression is type ? (type)expression : (type)null

Admin
ERROR: S client not available

Aler
19.03.2017
04:13:42
первый таймер как раз это

Andrew
19.03.2017
04:14:06
а, прощелкал

Aler
19.03.2017
04:15:36
is лучше все же

увеличил количество повторов и отрыв стал заметнее

Andrew
19.03.2017
04:16:22
попробуй в as кейсе не создавать переменную

Aler
19.03.2017
04:16:39
а как ты это представляешь?

Andrew
19.03.2017
04:17:02
(blabla as BlaBla)?.Dispose()

Aler
19.03.2017
04:17:03
if((foo as IDisposable) != null) ?

это сахар

Дмитрий
19.03.2017
04:17:13
(foo as IDisposable)?.Dispose()

Aler
19.03.2017
04:17:19
оно создаст

и я не могу C# 6 использовать

Andrew
19.03.2017
04:17:34
ns cdj. yt cjplfdfq

Дмитрий
19.03.2017
04:17:38
ну при компиляции да

Google
Andrew
19.03.2017
04:17:43
юнете?

Aler
19.03.2017
04:18:13
я умею в юнити C#6 использовать, но проблема в том, что это не только для меня код

Andrew
19.03.2017
04:19:29
в трай кэтче попробуй) раз уже проверяешь)

Vladimir Bondaryuk
19.03.2017
04:22:08
is лучше все же
по поводу написания бенчмарков собственных есть очень хорошая книга: оптимизачия приложений на платформе net. там на 80-й странице приведен пример как раз с as/is. и некорректностью просто прогона внутри for

Aler
19.03.2017
04:22:29
а что там сказано?

я поэтому и спросил, так как уверен, что тут есть специфика

про данные и как это работает. У меня данные хранятся в POCO объектах и наследуют интерфейс (пустой) пула своего

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

так как у меня объекты для данных не выбрасываются, а складываются в кеш и переиспользуются при необходимости

Но если в данных есть, например, List<>, то его перед кешированием надо очистить

Andrew
19.03.2017
04:28:30
Но если в данных есть, например, List<>, то его перед кешированием надо очистить
так а чё ты сразу не реализуешь IDisposable у объекта?ь где не надо прост сразу ретурн и всё

Aler
19.03.2017
04:28:57
потому, что это потребует в 90% писать public void Dispose() {}

а это некрасиво )

Дмитрий
19.03.2017
04:29:31
явная реализация интерфейса не?

Aler
19.03.2017
04:29:31
или потребует делать родительские классы, что тоже не хочу

Andrew
19.03.2017
04:29:36
потому, что это потребует в 90% писать public void Dispose() {}
унаследуй от абстрактной базы впиши пустой по дефолту и не переопределяй где не надо

Дмитрий
19.03.2017
04:29:58
ну или базовый класс для всех, в котором Dispose реализовать

Страница 591 из 1888

Эта группа больше не существует Эта группа больше не существует