Size: a a a

2020 March 18

v

vehlwn in pro.cxx
magras
Если программа регулярно кидает исклчения, это просто неправильное использование исключений.
Исключения - исключительным ситуациям. Фабрики - рабочим. Детям - мороженое.
источник

PK

Pavel Kazakov in pro.cxx
magras
Если программа регулярно кидает исклчения, это просто неправильное использование исключений.
При чем тут регулярное бросание исключений? Не надо додумывать :) просто странно, что вместо сотен тактов, она миллиона два проводит -- разница на порядки
источник

m

magras in pro.cxx
Pavel Kazakov
При чем тут регулярное бросание исключений? Не надо додумывать :) просто странно, что вместо сотен тактов, она миллиона два проводит -- разница на порядки
Если ошибка возникает регулярно и предполагается, что ее сразу нужно обрабатывать лучше использовать аналог either или maybe.

Если ошибка возникает раз в 10 лет, я не вижу смысла захламлять (и замедлять) свой код проверками всего и вся. Для этого есть исключения. Для них естественно жертвовать скоростью обработки ошиби, потому что предполагается, что это будет происходить редко.

Единственный сильный довод против, который я слышал - это ИБ. Да, в нормальных условиях эта ошибка может быть чрезвычайно редкой, но если сервер тратит в 1000 раз больше ресурсов на обработку ошибки, это может использовать злоумышленник.
источник

PK

Pavel Kazakov in pro.cxx
magras
Если ошибка возникает регулярно и предполагается, что ее сразу нужно обрабатывать лучше использовать аналог either или maybe.

Если ошибка возникает раз в 10 лет, я не вижу смысла захламлять (и замедлять) свой код проверками всего и вся. Для этого есть исключения. Для них естественно жертвовать скоростью обработки ошиби, потому что предполагается, что это будет происходить редко.

Единственный сильный довод против, который я слышал - это ИБ. Да, в нормальных условиях эта ошибка может быть чрезвычайно редкой, но если сервер тратит в 1000 раз больше ресурсов на обработку ошибки, это может использовать злоумышленник.
В дебаге сервер не должен работать наружу куда-то; вообще, все претензии к первохулителю, Тиму Суини: https://mobile.twitter.com/timsweeneyepic/status/1223077404660371456?lang=en

Ещё раз, меня беспокоит наследие старых говен мамонта, я не спрашиваю как с ними работать :) что такое SEH/VEH я знаю тоже, и про ветвление траями-кетчами тоже не надо
источник

A

ARCHANGEL in pro.cxx
magras
Если ошибка возникает регулярно и предполагается, что ее сразу нужно обрабатывать лучше использовать аналог either или maybe.

Если ошибка возникает раз в 10 лет, я не вижу смысла захламлять (и замедлять) свой код проверками всего и вся. Для этого есть исключения. Для них естественно жертвовать скоростью обработки ошиби, потому что предполагается, что это будет происходить редко.

Единственный сильный довод против, который я слышал - это ИБ. Да, в нормальных условиях эта ошибка может быть чрезвычайно редкой, но если сервер тратит в 1000 раз больше ресурсов на обработку ошибки, это может использовать злоумышленник.
ух жеж злоумышленник может. Да в проде там серваки в контейнерах за лоадбалансерами, где куча машин с сотнями тысяч или даже миллионами запросов в секунду. Что там учует злоумышленник?
источник

PK

Pavel Kazakov in pro.cxx
ARCHANGEL
ух жеж злоумышленник может. Да в проде там серваки в контейнерах за лоадбалансерами, где куча машин с сотнями тысяч или даже миллионами запросов в секунду. Что там учует злоумышленник?
он сначала проникает во внутреннюю сеть, а потом уже смотрит как там дальше можно жить, но не будем про ИБ
источник

m

magras in pro.cxx
Pavel Kazakov
В дебаге сервер не должен работать наружу куда-то; вообще, все претензии к первохулителю, Тиму Суини: https://mobile.twitter.com/timsweeneyepic/status/1223077404660371456?lang=en

Ещё раз, меня беспокоит наследие старых говен мамонта, я не спрашиваю как с ними работать :) что такое SEH/VEH я знаю тоже, и про ветвление траями-кетчами тоже не надо
Так в релизе failure path тоже на порядки медленее.
источник

m

magras in pro.cxx
ARCHANGEL
ух жеж злоумышленник может. Да в проде там серваки в контейнерах за лоадбалансерами, где куча машин с сотнями тысяч или даже миллионами запросов в секунду. Что там учует злоумышленник?
Для dos понадобится в 1000 раз меньше ресурсов.
источник

PK

Pavel Kazakov in pro.cxx
magras
Так в релизе failure path тоже на порядки медленее.
да пусть раз в сотню лет упадет, главное чтобы сдампил память и в лог насрал, пока падает, -- это нормально; у меня претензия к тулзам, которые ногами из Сей растут -- тут уже настоящие модули на пороге (не эти, из 20-х плюсов), а как их имплементировать? будет как с кусками для GC из <memory>? :D спецификация есть, имплементаций нет
источник

FF

Flex Ferrum in pro.cxx
Pavel Kazakov
В дебаге сервер не должен работать наружу куда-то; вообще, все претензии к первохулителю, Тиму Суини: https://mobile.twitter.com/timsweeneyepic/status/1223077404660371456?lang=en

Ещё раз, меня беспокоит наследие старых говен мамонта, я не спрашиваю как с ними работать :) что такое SEH/VEH я знаю тоже, и про ветвление траями-кетчами тоже не надо
Я пытаюсь осмыслить эту фразу:
"Exception throwing on Windows x64 is 8,000 CPU cycles in Visual C++ and 20,000 in clang, but grows to 1,800,000 when a debugger is attached to the process."
То есть если к процессу подключён дебаггер, то "стоимость" бросания исключения - 1800 тыс. тактов. Оооооооокееееееей... И как часто в продакшене работает код, к которому дебаггер прицеплен? То есть за что боремся и что лечим?
источник

A

ARCHANGEL in pro.cxx
magras
Для dos понадобится в 1000 раз меньше ресурсов.
как только хоть один сервак за лоадбалансером крашится, это ахтунг! Если клиент ещё и несколько серваков закрашит, то фаерволом тут же заблочится
источник

PK

Pavel Kazakov in pro.cxx
Flex Ferrum
Я пытаюсь осмыслить эту фразу:
"Exception throwing on Windows x64 is 8,000 CPU cycles in Visual C++ and 20,000 in clang, but grows to 1,800,000 when a debugger is attached to the process."
То есть если к процессу подключён дебаггер, то "стоимость" бросания исключения - 1800 тыс. тактов. Оооооооокееееееей... И как часто в продакшене работает код, к которому дебаггер прицеплен? То есть за что боремся и что лечим?
я тоже в курсе, что Тим Суини паникер и наркоман, меня напрягает только такой перекос по затраченному времени тактов -- там явно что-то через жопу закостылено внутри
источник

A

ARCHANGEL in pro.cxx
Pavel Kazakov
я тоже в курсе, что Тим Суини паникер и наркоман, меня напрягает только такой перекос по затраченному времени тактов -- там явно что-то через жопу закостылено внутри
нет, там отладочный порт дебаггера надо уведомить, и из-за работы с дебаггером, очередь дебаг ивентов и т.д. добавляется оверхед
источник

FF

Flex Ferrum in pro.cxx
Pavel Kazakov
я тоже в курсе, что Тим Суини паникер и наркоман, меня напрягает только такой перекос по затраченному времени тактов -- там явно что-то через жопу закостылено внутри
Эммм... Как по мне, сколько времени программа тратит на операции под дебаггером, под valgrind'ом, санитайзером - это вообще мимо кассы сразу. Это нестандартные режимы работы, иногда - с кучей инструментированного кода, дополнительным обвесом и проч. Тут даже говорить не о чем.
источник

A

ARCHANGEL in pro.cxx
а по ИБ эти тайминг атаки или дос через фаззинг - та влажные фантазии мамкиных кулхацкеров
источник

PK

Pavel Kazakov in pro.cxx
ARCHANGEL
а по ИБ эти тайминг атаки или дос через фаззинг - та влажные фантазии мамкиных кулхацкеров
ИБ -- это социнженерия в первую очередь)
источник

VO

Vyacheslav Olkhovchenkov in pro.cxx
ARCHANGEL
как только хоть один сервак за лоадбалансером крашится, это ахтунг! Если клиент ещё и несколько серваков закрашит, то фаерволом тут же заблочится
ага, программисты -- криворукие дебилы, а блочим -- кастомера. окееей.
источник

A

ARCHANGEL in pro.cxx
Pavel Kazakov
ИБ -- это социнженерия в первую очередь)
это когда руки из жопы ) тогда соц инженерия
источник

A

ARCHANGEL in pro.cxx
Vyacheslav Olkhovchenkov
ага, программисты -- криворукие дебилы, а блочим -- кастомера. окееей.
нет, ждём, когда кастомер все серваки закрашит, и блочим всех кастомеров
источник

PK

Pavel Kazakov in pro.cxx
ARCHANGEL
это когда руки из жопы ) тогда соц инженерия
пусть! я не буду переубеждать) пока в Вилларибо переписывают адреса на GOT/PLT, в Виллабаджо уже давно смылись со всеми базами куда подальше :)
источник