|
|
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, какова величина накладных расходов при системном вызове? Как известно при этом происходит переключение между user и kernel режимами, хотелось бы понять что при этом происходит чтобы оценить величину накладных расходов связанных с ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2017, 13:15 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
ГегемонЗдравствуйте, какова величина накладных расходов при системном вызове?... 30 Летят Петька с Василием Иванычем в самолете: - Петька, приборы?! - Тридцать! - Что - "тридцать"? - А что - "приборы"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 09:18 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
Кому известно? И, самое главное - зачем??? Что даст вам сакральное знание, что из 90 процентов общей неэффективности вашего кода - один приходится на долю переключения контекста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 09:20 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
ГегемонЗдравствуйте, какова величина накладных расходов при системном вызове? Как известно при этом происходит переключение между user и kernel режимами, хотелось бы понять что при этом происходит чтобы оценить величину накладных расходов связанных с ними. эта величина достаточно велика для того, чтобы не втыкать системные вызов в клуб строку алгоритма обработки данных, но в то же время достаточно мала для того, чтобы избегать системных вызовов там, где они реально нужны. например, в API Windows есть функции, дублирующие функциональность из стандартной библиотеки языка C: аналоги snprintf, strlen, strcpy, memcpy и т. п. Использовать их в своих алгоритма без особой нужды смысла нет, это плохая практика. Другие функции типа FindFileFirst/Next, функции GDI и Kernel уникальны, не вызывать их смысла нет, потому что по-другому никак это не сделать. Ну и надо напомнить, что далеко не все функции Win API при своей работе требуют переход в kernel mode, программисты Win полагают все силы, чтобы этого не делать, если это не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 09:35 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
MasterZivнапример, в API Windows есть функции, дублирующие функциональность из стандартной библиотеки языка C: аналоги snprintf, strlen, strcpy, memcpy и т. п. Использовать их в своих алгоритма без особой нужды смысла нет, это плохая практика. Не думаю что они в режиме ядра выполняются. MS их использование аргументировал совсем по-другому: эти функции использует проводник и прочие поделки от MS, поэтому при их вызове не потребуется подгружать DLL где они находятся, т.к. DLL уже в памяти, т.е. первый вызов чуть быстрее. Но минусов больше: код непереносимый, поэтому лучше стандартные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 10:05 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
Dima TMasterZivнапример, в API Windows есть функции, дублирующие функциональность из стандартной библиотеки языка C: аналоги snprintf, strlen, strcpy, memcpy и т. п. Использовать их в своих алгоритма без особой нужды смысла нет, это плохая практика. Не думаю что они в режиме ядра выполняются. MS их использование аргументировал совсем по-другому: эти функции использует проводник и прочие поделки от MS, поэтому при их вызове не потребуется подгружать DLL где они находятся, т.к. DLL уже в памяти, т.е. первый вызов чуть быстрее. Но минусов больше: код непереносимый, поэтому лучше стандартные. эти функции появились еще в win 3, Тогда они были нужны чтобы обойти проблемы в аналогичных функциях CRT, которые тогда были под разные модели памяти и не всегда ведь себя правильно в Win окружении. А потом уже было сложно от них избавиться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2017, 21:29 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
MasterZivА потом уже было сложно от них избавиться... а сейчас годятся для аппликух без стандартного рантайма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2017, 00:03 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
MasterZivDima Tпропущено... Не думаю что они в режиме ядра выполняются. MS их использование аргументировал совсем по-другому: эти функции использует проводник и прочие поделки от MS, поэтому при их вызове не потребуется подгружать DLL где они находятся, т.к. DLL уже в памяти, т.е. первый вызов чуть быстрее. Но минусов больше: код непереносимый, поэтому лучше стандартные. эти функции появились еще в win 3, Тогда они были нужны чтобы обойти проблемы в аналогичных функциях CRT, которые тогда были под разные модели памяти и не всегда ведь себя правильно в Win окружении. А потом уже было сложно от них избавиться... Эти фукнции находятся в ntdll и ntoskrnl и нужны для того, чтобы драйверы и прочие компоненты режима ядра, а также, программы, работающие в native-подсистеме не тащили к себе стандратную библиотеку времени выполнения, которой требуется пользовательские подсистемы (Win32 в частности). Руссинович с Соломоном об этом пишут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2017, 14:22 |
|
||
|
Windows накладные расходы при системном вызове
|
|||
|---|---|---|---|
|
#18+
Я не понимаю какой ответ ожидает услышать автор? Сказать что величина накладных расходов небольшая - ему будет достаточно? Или какие-то цифры хочет увидеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2017, 16:50 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39427227&tid=1340411]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 481ms |

| 0 / 0 |
