mirror of
https://github.com/reactos/reactos.git
synced 2025-07-15 20:54:03 +00:00
[0.4.14][RTL] Optimize RtlpFindAndCommitPages CORE-14588
A squashed backmerge of 3 commits authored by Thomas Faber. They do help to speed up RosBE2.1.6 within ReactOS. 'configure' runs faster by ~ factor 5. 'ninja bootcd -j1' runs faster by ~ factor 2. I considered back-porting that a necessity because we considerably lost speed over the last years in those scenarios. I tested, and it works well also in the 0.4.14RC. 0.4.15-dev-309-g10d23614d3
Use LastEntryInSegment to speed up RtlpFindAndCommitPages. CORE-14588 -------------------------- 0.4.15-dev-307-g1b7a4b3ebf
Add and populate LastEntryInSegment. CORE-14588 -------------------------- 0.4.15-dev-306-g78dddd125c
Create a define for the common members of HEAP and HEAP_SEGMENT. CORE-14588 The code relies on these members matching up, so it's confusing for them to be duplicated.
This commit is contained in:
parent
0e72f93687
commit
4111dfa8bf
2 changed files with 100 additions and 38 deletions
|
@ -203,22 +203,26 @@ typedef struct _HEAP_LIST_LOOKUP
|
|||
PLIST_ENTRY *ListHints;
|
||||
} HEAP_LIST_LOOKUP, *PHEAP_LIST_LOOKUP;
|
||||
|
||||
#define HEAP_SEGMENT_MEMBERS \
|
||||
HEAP_ENTRY Entry; \
|
||||
ULONG SegmentSignature; \
|
||||
ULONG SegmentFlags; \
|
||||
LIST_ENTRY SegmentListEntry; \
|
||||
struct _HEAP *Heap; \
|
||||
PVOID BaseAddress; \
|
||||
ULONG NumberOfPages; \
|
||||
PHEAP_ENTRY FirstEntry; \
|
||||
PHEAP_ENTRY LastValidEntry; \
|
||||
ULONG NumberOfUnCommittedPages; \
|
||||
ULONG NumberOfUnCommittedRanges; \
|
||||
USHORT SegmentAllocatorBackTraceIndex; \
|
||||
USHORT Reserved; \
|
||||
LIST_ENTRY UCRSegmentList; \
|
||||
PVOID LastEntryInSegment //FIXME: non-Vista
|
||||
|
||||
typedef struct _HEAP
|
||||
{
|
||||
HEAP_ENTRY Entry;
|
||||
ULONG SegmentSignature;
|
||||
ULONG SegmentFlags;
|
||||
LIST_ENTRY SegmentListEntry;
|
||||
struct _HEAP *Heap;
|
||||
PVOID BaseAddress;
|
||||
ULONG NumberOfPages;
|
||||
PHEAP_ENTRY FirstEntry;
|
||||
PHEAP_ENTRY LastValidEntry;
|
||||
ULONG NumberOfUnCommittedPages;
|
||||
ULONG NumberOfUnCommittedRanges;
|
||||
USHORT SegmentAllocatorBackTraceIndex;
|
||||
USHORT Reserved;
|
||||
LIST_ENTRY UCRSegmentList;
|
||||
HEAP_SEGMENT_MEMBERS;
|
||||
|
||||
ULONG Flags;
|
||||
ULONG ForceFlags;
|
||||
|
@ -271,20 +275,7 @@ typedef struct _HEAP
|
|||
|
||||
typedef struct _HEAP_SEGMENT
|
||||
{
|
||||
HEAP_ENTRY Entry;
|
||||
ULONG SegmentSignature;
|
||||
ULONG SegmentFlags;
|
||||
LIST_ENTRY SegmentListEntry;
|
||||
PHEAP Heap;
|
||||
PVOID BaseAddress;
|
||||
ULONG NumberOfPages;
|
||||
PHEAP_ENTRY FirstEntry;
|
||||
PHEAP_ENTRY LastValidEntry;
|
||||
ULONG NumberOfUnCommittedPages;
|
||||
ULONG NumberOfUnCommittedRanges;
|
||||
USHORT SegmentAllocatorBackTraceIndex;
|
||||
USHORT Reserved;
|
||||
LIST_ENTRY UCRSegmentList;
|
||||
HEAP_SEGMENT_MEMBERS;
|
||||
} HEAP_SEGMENT, *PHEAP_SEGMENT;
|
||||
|
||||
typedef struct _HEAP_UCR_DESCRIPTOR
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue