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

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

Размер стека


Страницы:   1 2

Alex_Korn ©   (2005-10-11 14:21:00) 

Как определить какую часть стековой памяти
занимает программа в данный момент времени ?


Leonid Troyanovsky   (2005-10-12 09:43:00) [21]


> Alex_Korn ©   (12.10.05 07:35) [2]

> Я в программе использую рекурсию и меня интересует вопрос
> сколько процентов стека я занял на данный момент от "Stack
> overload".


В тот момент, когда появляется Stack overflow поздно считать проценты,
бо все, что можно было выделить потоку было выделено (стек растет
динамически, по мере необходимости).

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

--
Regards, LVT.


MBo   (2005-10-12 09:08:00) [22]

Что за алгоритм?


Alex_Korn   (2005-10-12 09:04:00) [23]

MBo ©   (12.10.05 7:53) [3]
Рекурсия у меня ограничена количеством элементов, которые надо
обработать. Их ( элементов ) фиксированное число, имеющее
верхнюю границу.
Отказываться от рекурсии, в моем случае, нецелесообразно.


MBo   (2005-10-12 07:53:00) [24]

>Я в программе использую рекурсию и меня интересует вопрос
Такие проблемы решаются тщательным планированием алгоритма с целью (разумного) ограничения рекурсии. Во многих случаях от нее вообще можно избавиться.


Alex_Korn   (2005-10-12 07:35:00) [25]

Digitman ©   (11.10.05 14:42) [1]
Спасибо !
Я имел ввиду следующее:
Бывает ошибка - "Stack overload".
Я в программе использую рекурсию и меня интересует вопрос
сколько процентов стека я занял на данный момент от "Stack overload".


Digitman   (2005-10-11 14:42:00) [26]

хм... непонятно что тебя интересует ...

попробую протелепатировать :

procedure TForm1.Button3Click(Sender: TObject);
var
 p: Pointer;
 mbi: TMemorybasicInformation;
begin
 asm
   mov p, esp;
 end;
 VirtualQuery(pointer(findhinstance(p)), mbi, sizeof(mbi));
 showmessage(inttohex(mbi.RegionSize, 8));
end;


Страницы:   1 2

Наверх

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