Вниз
Скачать: CL | DM;

objects allocation on the stack (speedy) is it possible in KOL?   Найти похожие ветки 

 
thaddy   (2005-01-24 19:35) [0]

something by Robert Marsh:
Is it possible to implement in kol?
I am still unsuccesfull in translating it

http://www.undu.com/Articles/010327a.html


 
Владимир Кладов   (2005-01-24 21:11) [1]

Don"t know about object allocation, but it is possible to allocate an array:

function UseStack( Size: DWORD ): Pointer;
asm
 POP ECX
 SUB ESP, EAX
 MOV EAX, ESP
 PUSH ECX
end;

procedure UnUseStack( Size: DWORD );
asm
 POP ECX
 ADD ESP, EAX
 PUSH ECX
end;

{$STACKFRAMES ON} // *** REQUIRED!
procedure TForm1.Button6Click(Sender: PObj);
const sz = 10000;
var Ptr: Pointer;
begin
 Ptr := UseStack( sz );

 FillChar( Ptr^, sz, $AB );

 UnUseStack( sz );
end;


No memory manager replacement required, usage very simple, but... dangerous!


 
thaddy   (2005-01-24 23:19) [2]

Yes! I knew that trick :) but my problem with the (equally dangerous) translation of the code was that I could find no wat to determine if a call was from the inside if a Kol object or not.
Is there a way to determine where the memory allocation for a Tobj starts (yes, found it) and ends (no, could not determine that)?

What I want to achieve is a speedy way to allocate and de-allocate small objects by simply replacing the memory manager, as Robert Marsh has done in his sourcecode.

Btw: the code in grids.pas is safer than yours, because it always 'touches' the page boundary, thus allocating/growing the stack if appropiate. This only fails if you allocate more than 1 Mb of space since that is the standard amount of stackspace given to any given process or thread.

There has to be Some way??



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
1-1123827117
Ш-К
2005-08-12 10:11
2005.09.04
Как привести Integer к множеству?


6-1116580918
EGK
2005-05-20 13:21
2005.09.04
Не работает apache shared module под 2 Apache


14-1123512095
root
2005-08-08 18:41
2005.09.04
Очень уж щикотливая тема :-)


1-1123748220
Суслик
2005-08-11 12:17
2005.09.04
Проблемы с TListView


3-1120637722
-=snoop=-
2005-07-06 12:15
2005.09.04
Работа с dbf в Delphi через ADO




   Наверх