Re[5]: Резервирование стека при вызове ф-й
От: Magister Россия  
Дата: 05.02.03 00:32
Оценка:
Здравствуйте, Владик, Вы писали:

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


>>использовании ее в конструкторе копирования больших (в несколько страниц) объектов на стеке все работает без Access violation. То есть, прежде чем такой конструктор вызовется, все необходимые страницы памяти под локальные переменные уже будут созданы! Это тоже потеря быстродействия?


В>А ты (ради интереса) посмотри, что компилятор делает, когда размер локальных переменных переваливает через 4кб

В>А после этого можно будет поспорить по поводу того, что всегда ли "динамическое" выделение памяти будет медленне "стэкового"

Это верно, при больщой глубине появляются тормоза.
Я это встретил при разработке парсеров. Избавился от рекурсии и получил свои ~ 20 метров в сек.

Нужно стараться решать проблему рекурсии переработкой алгоритма, и держать по меньше
больших обьектов в стэке.
Re[5]: Резервирование стека при вызове ф-й
От: Magister Россия  
Дата: 05.02.03 01:15
Оценка:
Здравствуйте, Stanislav Kondratiev, Вы писали:

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


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


G>>>Стек он забивает 0xCC

V>>В Debug-версии.
SK>И проверки тоже в Debug версии.
SK>Причем MSVC++ 6 в Дебаг-версии всегда восстанавливает стек при выходе из функции, поэтому если ты где-то напортачил внутри — то этого можешь даже и не заметить, а в релизе обязательно вылетит — у меня так было.

У теня тоже. Это легко достигнуть подсовывая в MESSAGE MAP MFC функцию не правильного прототипа.
в дебаге работает, в релизе ...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.