Re[5]: Правда об оверхеде исключений.
От: jazzer Россия Skype: enerjazzer
Дата: 15.07.08 00:44
Оценка:
Здравствуйте, remark, Вы писали:

R>

R>Меня интересует с какой скоростью сервер будет обрабатывать запросы, меня не интересует с какой скоростью он не будет обрабатывать запросы.


В разумных пределах, иначе это прямая допога в DDOS.
Негоже, если все корректные запросы должны сидеть и курить трубку, пока сервер не разберется с одним залетевшим некорректным.

R>

jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Правда об оверхеде исключений.
От: minorlogic Украина  
Дата: 15.07.08 04:38
Оценка:
Дык обычно кричат о накладных расходах именно те кто не знает как реализованны механизмы исключений.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[6]: Правда об оверхеде исключений.
От: remark Россия http://www.1024cores.net/
Дата: 15.07.08 07:25
Оценка:
Здравствуйте, jazzer, Вы писали:

R>>

R>>Меня интересует с какой скоростью сервер будет обрабатывать запросы, меня не интересует с какой скоростью он не будет обрабатывать запросы.


J>В разумных пределах, иначе это прямая допога в DDOS.

J>Негоже, если все корректные запросы должны сидеть и курить трубку, пока сервер не разберется с одним залетевшим некорректным.

Ну это так... больше для красного словца


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[2]: Правда об оверхеде исключений.
От: IceStudent Украина  
Дата: 15.07.08 08:21
Оценка: 6 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Вы тут не упомянули самую малость

А>А конкретно то что бросание исключения это вызов ядра, и последующий callback из ядра user-mode обработчика (ntdll!KiUserExceptionDispatcher) который уже начнет бродить по структурам в TEB'е вызывая обрабочики. И пара тысяч тактов CPU на всю эту мудотень.
Никто не запрещает реализовать поддержку исключений С++ без SEH (то есть, без поддержки OS фактически). Это очень положительно скажется на быстродействии при возникновении исключительной ситуации.
Re[2]: Правда об оверхеде исключений.
От: Roman Odaisky Украина  
Дата: 15.07.08 08:27
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Дык обычно кричат о накладных расходах именно те кто не знает как реализованны механизмы исключений.


Вот я не знаю. Где об этом хорошо написано?
До последнего не верил в пирамиду Лебедева.
Re[3]: Правда об оверхеде исключений.
От: remark Россия http://www.1024cores.net/
Дата: 15.07.08 08:47
Оценка: +2 :)
Здравствуйте, Roman Odaisky, Вы писали:

M>>Дык обычно кричат о накладных расходах именно те кто не знает как реализованны механизмы исключений.


RO>Вот я не знаю. Где об этом хорошо написано?


В дизассемблере


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[3]: Правда об оверхеде исключений.
От: Аноним  
Дата: 15.07.08 08:52
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, minorlogic, Вы писали:


M>>Дык обычно кричат о накладных расходах именно те кто не знает как реализованны механизмы исключений.


RO>Вот я не знаю. Где об этом хорошо написано?


http://www.microsoft.com/msj/0197/Exception/Exception.aspx
Re[6]: Правда об оверхеде исключений.
От: quodum  
Дата: 15.07.08 11:20
Оценка: 1 (1)
Здравствуйте, Максим2006, Вы писали:

М>На on-line MSDN для MapViewOfFile нет вроде упоминаний о __try/__catch


Внимательнее.

To guard against EXCEPTION_IN_PAGE_ERROR exceptions, use structured exception handling to protect any code that writes to or reads from a memory mapped view of a file other than the page file. For more information, see Reading and Writing From a File View.


М>Ага, ограничение, ограничивающее использование исключений поэтому и отказываются


COM запрещает только передачу исключений через границу компонента. Внутри можно использовать, если это удобно с точки зрения дизайна конкретного компонента. Отказываются же, зачастую, из "религиозных" соображений, а отнюдь не из технических или архитектурных.
Re: Правда об оверхеде исключений.
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 15.07.08 11:39
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN> ...Пропущенно...


Вы приводите заведомо элементарный код... проблемма в том что не всегда (тривиальные случаи не берем) понятно что является исключительной ситуацией, а что нет.
Приветду свой пример из жизни:
Есть сервер, на котором запущено некоторое количество сервисов которые обрабатывают запросы пользователей. Сервисы разрабатывались отдельно друг от друга. Задача каждого сервиса(сервера) как можно быстреее восстановиться после сбоя. Естественно разработчики каждого сервера исходили из того что разрыв соединения это исключительная ситуация которая никогда не происходит и кидали всяческие Exceptionы. Так вот с одним из сервисов, по техническим причинам стало постоянно рваться соедининие. Остальные могли работать как ни в чем не бывало, но из-за так называемых "небольших" накладных расходов, вся система встала р%%%ком да так что мышкорй даже нельзя было пошевелить.
Re[2]: Правда об оверхеде исключений.
От: gear nuke  
Дата: 15.07.08 12:07
Оценка:
Здравствуйте, <Аноним>,

Кстати, подобное может произойти и при тривиальном чтении байта из памяти, если страница выгружена. И мало кто обращает на это внимание, хотя еще и HDD придётся ждать
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[6]: DoS
От: gear nuke  
Дата: 15.07.08 12:07
Оценка: +1
Здравствуйте, jazzer,

Отказ в обслуживании обычно происходит как раз из-за корректных (с точки зрения сервера) запросов, которые таковыми на самом деле не являются (эксплуатация уязвимости), либо их слишком много (DDoS — всего лишь способ усложнить политику отброса запросов).

То есть, для отказоустойчивой системы, обработка таких запросов должна быть штатной ситуацией. От некорректных нагрузки обычно не много — исключение быстрее обработается, чем бизнес-логика (запросы к БД, ФC и тп.)

R>>

J>
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: Правда об оверхеде исключений.
От: gear nuke  
Дата: 15.07.08 12:38
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>с одним из сервисов, по техническим причинам стало постоянно рваться соедининие.


Вроде бы, таймаут измеряется в секундах.

ATP>из-за так называемых "небольших" накладных расходов, вся система встала р%%%ком да так что мышкорй даже нельзя было пошевелить.


Странно, приоритет обработчика мыши выше, чем любого юзермодного кода (по крайней мере в Windows). Проблема могда быть из-за TCP стека (в ядре).
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[7]: Правда об оверхеде исключений.
От: Максим2006 Беларусь  
Дата: 15.07.08 14:17
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Здравствуйте, Максим2006, Вы писали:


М>>На on-line MSDN для MapViewOfFile нет вроде упоминаний о __try/__catch


Q>Внимательнее.


Q>

Q>To guard against EXCEPTION_IN_PAGE_ERROR exceptions, use structured exception handling to protect any code that writes to or reads from a memory mapped view of a file other than the page file. For more information, see Reading and Writing From a File View.


Спасибо.


М>>Ага, ограничение, ограничивающее использование исключений поэтому и отказываются


Q>COM запрещает только передачу исключений через границу компонента. Внутри можно использовать, если это удобно с точки зрения дизайна конкретного компонента. Отказываются же, зачастую, из "религиозных" соображений, а отнюдь не из технических или архитектурных.


Хотел бы я посмотреть на такой компонент, где намешаны коды возвратов и исключения
Пользование какого-то инструмента определяется его надобностью.. зачастую
Re[8]: Правда об оверхеде исключений.
От: quodum  
Дата: 15.07.08 15:19
Оценка:
Здравствуйте, Максим2006, Вы писали:

М>Хотел бы я посмотреть на такой компонент, где намешаны коды возвратов и исключения

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

М>Пользование какого-то инструмента определяется его надобностью.. зачастую

Бывает и так, и последнее время, к счастью, всё чаще. Но, увы, отнюдь не всегда...
Re[7]: DoS
От: Аноним  
Дата: 15.07.08 22:45
Оценка: :))
GN>То есть, для отказоустойчивой системы, обработка таких запросов должна быть штатной ситуацией. От некорректных нагрузки обычно не много — исключение быстрее обработается, чем бизнес-логика (запросы к БД, ФC и тп.)
Бизнес логика она обычно после авторизации клиента идет. return false из процедуры логина будет работать быстрее throw IncorrectLogin(); в исполнении MSVS и сервер будет менее чувствителен к DDoS'у рандомными логинами.
Re[3]: Правда об оверхеде исключений.
От: Аноним  
Дата: 15.07.08 22:52
Оценка:
GN>Странно, приоритет обработчика мыши выше, чем любого юзермодного кода (по крайней мере в Windows).
Это в теории. На практике
void __cdecl trd(void*)
{
for(;;)_beginthread(trd, 0, 0);
}

замораживает мышь.
Re[4]: Правда об оверхеде исключений.
От: gear nuke  
Дата: 16.07.08 04:56
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>
А>void __cdecl trd(void*)
А>{
А>for(;;)_beginthread(trd, 0, 0);
А>}
А>


Запустил. Отправляю сообщение
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[3]: Правда об оверхеде исключений.
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 16.07.08 06:55
Оценка:
Здравствуйте, gear nuke, Вы писали:

GN>Здравствуйте, AcidTheProgrammer, Вы писали:


ATP>>с одним из сервисов, по техническим причинам стало постоянно рваться соедининие.


GN>Вроде бы, таймаут измеряется в секундах.


Это в теории , на практике бывает что он практически отсутствует.

ATP>>из-за так называемых "небольших" накладных расходов, вся система встала р%%%ком да так что мышкорй даже нельзя было пошевелить.


GN>Странно, приоритет обработчика мыши выше, чем любого юзермодного кода (по крайней мере в Windows). Проблема могда быть из-за TCP стека (в ядре).


Ну это, так сказать, преувеличение. На самом деле мышь дергалась, а все ресурсы системы ушли на обработку исключений.
Re[4]: Правда об оверхеде исключений.
От: Roman Odaisky Украина  
Дата: 16.07.08 07:48
Оценка:
Здравствуйте, Аноним, Вы писали:

M>>>Дык обычно кричат о накладных расходах именно те кто не знает как реализованны механизмы исключений.

RO>>Вот я не знаю. Где об этом хорошо написано?

А>http://www.microsoft.com/msj/0197/Exception/Exception.aspx


Интересно. Ну это майкрософтовские. А остальные механизмы?
До последнего не верил в пирамиду Лебедева.
Re[8]: DoS
От: Roman Odaisky Украина  
Дата: 16.07.08 07:56
Оценка:
Здравствуйте, Аноним, Вы писали:

GN>>То есть, для отказоустойчивой системы, обработка таких запросов должна быть штатной ситуацией. От некорректных нагрузки обычно не много — исключение быстрее обработается, чем бизнес-логика (запросы к БД, ФC и тп.)


А>Бизнес логика она обычно после авторизации клиента идет. return false из процедуры логина будет работать быстрее throw IncorrectLogin(); в исполнении MSVS и сервер будет менее чувствителен к DDoS'у рандомными логинами.


Так тебе же и пытаются сказать, что даже в исполнении MSVS этот throw будет только чуть-чуть медленнее.

Хотя ошибка авторизации — это вовсе не исключительная ситуация.
До последнего не верил в пирамиду Лебедева.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.