понедельник, 1 декабря 2008 г.

Есть ли ограничение на максимальную вложенность окон?

Это перевод What is the window nesting limit? Автор: Реймонд Чен.

В давние времена, Windows не заботилась об установке специального ограничения на вложенность окон, потому что, ну, если вы хотели вложить друг в друга 200 окон - это было целиком ваше решение. Многие оконные операции рекурсивны по своей сути, но поскольку вся работа происходила на стеке вашего приложения, то держать стек достаточно большим для работы (чтобы не было ошибок переполнения буфера) было только вашей ответственностью.

Но Windows NT переместила оконный менедежер со стека приложения (сначала в отдельный процесс, а затем и в режим ядра). Поэтому теперь ОС нужно было защищаться от атак переполнения стека от людей, которые создавали слишком много вложенных окон.

В ранних версиях Windows NT максимальное число вложенных окон было установлено в 100. В Windows XP это ограничение снизили до 50, потому что увеличенные требования к стеку в некоторых внутренних функциях приводили к переполнению при значении около 75. Усиление ограничения до 50-ти было сделано для запаса.

Оговорка: я не был лично причастен к этому вопросу. Я только сообщаю, что я смог выяснить из чтения checkin-логов.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.