3

私はコードを持っていて、いくつかの数字を教えてくれます。これらの数字が何を意味するのかわかりません。これらの数字が何を意味するのか興味があります。ご回答ありがとうございます。

procedure usdmem(var stradd,stpadd:array of Integer);
var
st: TMemoryManagerState;
sb: TSmallBlockTypeState;
i:Integer;
begin
 GetMemoryManagerState(st);
 i:=0;
 for  sb in st.SmallBlockTypeStates do
 begin
   stradd[i]:=sb.ReservedAddressSpace;
   stpadd[i]:=stradd[i]+sb.UseableBlockSize*8;
   inc(i);
 end;
end;
//-----------------------------------
usdmem(stradd,stpadd);
for I := 0 to 10 do
begin
  Write(inttostr(stradd[I]));
  Write(' - ');
  WriteLn(inttostr(stpadd[I]));
end;
4

1 に答える 1

1

この情報は、プログラムのドキュメントTMemoryManagerStateにあります。また、 Memory Management Indexの多数のトピック インデックスで、より多くの情報を入手できます。

FastMM の仕組みを本当に理解したい場合は、ソースをダウンロードして読む必要があります。たとえば、次のTSmallBlockTypeStateように定義します。

TSmallBlockTypeState = record
  {The internal size of the block type}
  InternalBlockSize: Cardinal;
  {Useable block size: The number of non-reserved bytes inside the block.}
  UseableBlockSize: Cardinal;
  {The number of allocated blocks}
  AllocatedBlockCount: NativeUInt;
  {The total address space reserved for this block type (both allocated and
   free blocks)}
  ReservedAddressSpace: NativeUInt;
end;

ご覧のとおり、コメントはレコードのフィールドを文書化しています。

于 2013-04-12T11:37:58.570 に答える