Size: a a a

2021 February 16

K

Katz in pro.net
Ayrat Hudaygulov
не быстро, это рефлексия. Поэтому там надо делать только

ConcurrentDict<Type, bool>
Я думаю можно ещё попробовать вариант со сканированием сборок на подходящие типы единожды, которые могут конвертироваться. Складывая их в обычный хэшсет, который потом только читать в CanConvert.
источник

AH

Ayrat Hudaygulov in pro.net
Katz
Я думаю можно ещё попробовать вариант со сканированием сборок на подходящие типы единожды, которые могут конвертироваться. Складывая их в обычный хэшсет, который потом только читать в CanConvert.
ну когда типы известны с самого начала, то можно вообще при инициализации посчитать да
источник

IB

Ivan Balanar in pro.net
Katz
Я думаю можно ещё попробовать вариант со сканированием сборок на подходящие типы единожды, которые могут конвертироваться. Складывая их в обычный хэшсет, который потом только читать в CanConvert.
а если сборку подгрузили?
источник

AH

Ayrat Hudaygulov in pro.net
Ivan Balanar
а если сборку подгрузили?
давно ты сборки в рантайме подгружал?)
источник

IB

Ivan Balanar in pro.net
Ayrat Hudaygulov
давно ты сборки в рантайме подгружал?)
могу соврать, но где-то в 2012
источник

AK

Andrei Kostyrin in pro.net
мы сборки грузим в AssemblyLoadContext
источник

AH

Ayrat Hudaygulov in pro.net
Ivan Balanar
могу соврать, но где-то в 2012
ну вот я вот не уверен что вообще это делал будучи трезвым
источник

AK

Andrei Kostyrin in pro.net
а что-то сделать можно со стрингами и прочей нечистью, чтобы они в СanConvert вообще не попадали ?
источник

AK

Andrei Kostyrin in pro.net
проверки в конвертерах писать не вариант..
источник

AH

Ayrat Hudaygulov in pro.net
Andrei Kostyrin
а что-то сделать можно со стрингами и прочей нечистью, чтобы они в СanConvert вообще не попадали ?
для них же будет тоже какой-то конвертер, просто стандартый
источник

IB

Ivan Balanar in pro.net
Andrei Kostyrin
проверки в конвертерах писать не вариант..
сделать второй дикшинарь с популярными типами, которые скипать?
источник

AH

Ayrat Hudaygulov in pro.net
Ivan Balanar
сделать второй дикшинарь с популярными типами, которые скипать?
ну или вот да.
источник

K

Katz in pro.net
Andrei Kostyrin
а что-то сделать можно со стрингами и прочей нечистью, чтобы они в СanConvert вообще не попадали ?
Вариант с кэшем, что сверху предлагали, пробовали?
Для таких типов будет одно быстрое чтение из словаря и возвращение "false".
источник

DP

Denis Petukhov in pro.net
А точно в этом месте боттлнек?
источник

AH

Ayrat Hudaygulov in pro.net
Denis Petukhov
А точно в этом месте боттлнек?
вот да, автор так и не поделился своими трейсами, флеймграфами или бенчами
источник

AH

Ayrat Hudaygulov in pro.net
мы тут может не то оптимизируем
источник

DP

Denis Petukhov in pro.net
Ну isAssignableFrom канеш не очень быстро, но всё же
источник

AK

Andrei Kostyrin in pro.net
замеры конечно проводились через одно место, jmeter-ом средний респонс 20+ конвертеров = 1256мс, а если оставить один конвертер 488мс
источник

DP

Denis Petukhov in pro.net
Может там синхронный код и внезапно лагает под лоадом)
источник

VS

Vasily Shapenko in pro.net
Andrei Kostyrin
замеры конечно проводились через одно место, jmeter-ом средний респонс 20+ конвертеров = 1256мс, а если оставить один конвертер 488мс
Чобля, простите мой французский
источник