170 похожих чатов

Насколько дорого обходится операция приведения интерфейса в булево?

2 ответов

5 просмотров

bool это базовый тип, поэтому структурой интерфейса будет runtime.eface посмотрим на само преобразование: LEAQ type.bool(SB), BX CMPQ AX, BX JNE main_main_pc180 CMPQ (compare, ==) сравнивает типы, а JNE (jump, как goto) при неудаче отправляет нас в панику: main_main_pc180: ... CALL runtime.panicdottypeE(SB) ... При удачном касте мы просто получим bool (по идее на сточке с LEAQ). Преобразование базовых типов намного быстрее чем структур с методами, поэтому я бы не волновался из-за производительности. + чтобы получить этот код мне пришлось "обмануть" компилятор, потому что он убирает проверки и берет значение напрямую (если не видит других типов в интерфейсе), что дает тебе скорость наравне с var b bool

Illia 🇺🇦
bool это базовый тип, поэтому структурой интерфейс...

"если вы этим занимаетесь — вы умный, не будьте умным"

Похожие вопросы

Обсуждают сегодня

вот такое это из хаскеловской или никсовой ситуации ? пока мне сложно отличить, может кто понимает last 10 log lines: > Running phase: updateAutotoolsGnuConfig...
Fedor
18
Снова я с выводом номера вхождения подстроки в строку. Исправил код, номер элемента, с которого начинается подстрока в строке, выводит, но неправильно. Подскажите, пожалуйста,...
Ыиу
2
а вот так если по инструкции выше Y % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total ...
Fedor
7
Вопрос, не ставиться haskus-utils-variant (>=3.3 && <3.4) - говорит битый пакет под никсом, есть у кого мысли как чинить ?
Fedor
16
@dt0W3s1yQE75Mew ну чё как чувствуешь себя здесь бот? запомни тупое ты чучело - в ассемблере нету тянок
.
18
Доброго времени! Есть ли в Lazarus заклинания повышающие точность double? function Distance( constref pt0,pt1:TDVec2 ):double; var cp,st:TDVec2; sin_sr1,sin_sr2, ...
Александр Смоляков
3
ого, прикольно, а что пишешь?
CodWiz | Серёжа by CodWiz
32
а почему бы не поведать миру эти дополнения, сделав их по сути стандартными для ide ?
Mixail Frolov
26
А что за прикол,типа тут я никого не найду получается?
🥀
17
Добрый день, пытаюсь в sentry подключить к кластерам кафки и кликхауса, мне необходимо передать им "bootstrap.servers": "servers:9092" но я не понимаю как передать туда server...
Михаил
7
Карта сайта