Показать сообщение отдельно
Старый 17.12.2008, 18:40   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Чего-то какая-то путаница возникла, по-моему...
Цитата:
Сообщение от somebody Посмотреть сообщение
Размер стека кратен странице, т. е. в любом случае не меньше 4 Кб (для 32 бит), при вызовах API из потока рекомендуется от 64 Кб. Т. е. о нескольких сотнях байт речь идти не может. Умолчание вообще 1 Мб.
При чем тут размер стека и "несколько десятков-сотен байт на один вызов"?
Цитата:
Сообщение от somebody Посмотреть сообщение
Т. е., похоже, проблемы thunk'ов 32->64 могут возникнуть при недостаточных размерах стека 32-битного потока?..
Насколько мне известно, что при непосредственном вызове API, что при вызове через thunk используется один и тот же стек вызывающего потока, т.е. отдельный какой-нить стек мегабайтного размера (или сколько там прописано в PE-заголовке) не создается. Соотв., накладные расходы складываются из того, что при вызове через thunk кроме несских (десятков) байт параметров, переданных из 32-битного кода, в тот же самый стек вызывающего потока помещается еще несско (десятков) байт параметров, преобразованных thunk'ом для использования 64-битным кодом. Отсюда и оценка накладных расходов по памяти в несколько сот килобайт для всех созданных в системе потоков 32-битного кода.
За это сообщение автора поблагодарили: somebody (1).