Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

размер стека [D7, Win2k, WinXP]


ghg ©   (2004-08-06 19:22:00) 

имеем некую расчетную процедуру в которой при задании большого числа элементов не хватает размера стэка

вопрос: какой максимальный размер стэка можно задать для приложения, и какие есть способы уменьшения пользования стэка

ps: переписать расчетную процедуру не предлагать (не я писал)  :)


ghg   (2004-08-06 21:15:00) [1]

обратная трехмерная для геофизики
правда имно память раньше кончится


TUser   (2004-08-06 21:02:00) [2]

Есь какая-то директива компилятора, уоторая устанавливает максимальный размер стека. Хотя надо очень постараться, чтобы придумать задачу, для которой действительно надо использовать эту директиву.


ghg   (2004-08-06 20:01:00) [3]

>Юрий Зотов ©   (06.08.04 19:59) [7]
спасибо
половину не знал


Юрий Зотов   (2004-08-06 19:59:00) [4]

> ghg ©   (06.08.04 19:22)  

> какие есть способы уменьшения пользования стэка

1. Избегать рекурсивных алгоритмов.

2. Избегать длинных цепочек вызова процедур и функций. Например, короткие процедуры можно заменить их же кодом "по месту". Хотя это и не лучший стиль, но если уж ничего другого не остается, то деваться некуда.

3. Как можно меньще локальных переменных в процедурах и функциях и как можно меньший размер этих переменных. Например, можно использовать глобальные переменные, хотя это тоже не лучший стиль.

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


ghg   (2004-08-06 19:54:00) [5]

отлично
по ссылке написано что максимально возможный размер стэка $7fffffff
у меня же больше чем $01000000 не делается
в чем может быть причина?


begin...end   (2004-08-06 19:44:00) [6]

Вот здесь 3-й пункт почитай:

http://delphiworld.narod.ru/base/compiler_directives.html


ghg   (2004-08-06 19:40:00) [7]

>begin...end ©   (06.08.04 19:36) [3]
блин объясню подробнее
В этом вот поле memory side->Max stack size у меня задано
$01000000
больше не делается, это не делается больше в принципе или я еще что то не сделал для увеличения ?


begin...end   (2004-08-06 19:36:00) [8]

Откуда ж кто знает, какие у тебя настройки?

Project -> Options -> Linker -> Memory Sizes


ghg   (2004-08-06 19:31:00) [9]

максимальный размер какой?


Anatoly Podgoretsky   (2004-08-06 19:27:00) [10]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо