[cvsnt-commits] Cvs Commit: cvsnt

cvsnt-commits at cvsnt.org cvsnt-commits at cvsnt.org
Fri Jun 15 05:55:31 BST 2007


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


CVSROOT:	/usr/local/cvs
Module name:	cvsnt
Changes by:	abarrett at nodomain.org		Fri Jun 15 04:55:14 2007
On host:	mail.march-hare.com

Directory: cvsnt/src

M add.cpp	CVSNT_BRANCH_2_5_03_2382	1.20.2.67.6.5 -> 1.20.2.67.6.6	Bug Id: 4964
M entries.cpp	CVSNT_BRANCH_2_5_03_2382	1.23.2.46.6.5 -> 1.23.2.46.6.6	Bug Id: 4964
M hash.cpp	CVSNT_BRANCH_2_5_03_2382	1.12.2.21.8.6 -> 1.12.2.21.8.7	Bug Id: 4964
M hash.h	CVSNT_BRANCH_2_5_03_2382	1.13.2.8.8.1 -> 1.13.2.8.8.2	Bug Id: 4964
M main.cpp	CVSNT_BRANCH_2_5_03_2382	1.71.2.151.6.5 -> 1.71.2.151.6.6	Bug Id: 4964
M subr.cpp	CVSNT_BRANCH_2_5_03_2382	1.62.2.81.6.7 -> 1.62.2.81.6.8	Bug Id: 4964

Directory: cvsnt/windows-NT

M win32.cpp	CVSNT_BRANCH_2_5_03_2382	1.72.2.150.6.7 -> 1.72.2.150.6.8	Bug Id: 4964

Log message:
OK here is part 2!  BUILD 2733.

New settings:
- AllocMax2=262144 
- AllocThreshold=0 (use "big block of memory" if lines >= AllocThreshold)
- EntriesLineCount=0

These settings are purely debug:
- TestSpeed1=0
- PerformFind=1

To disable "big block of mem" do one or both:
- AllocMax2=0 
- AllocThreshold=0 (ie: it is off by default currently)

Note:
If EntriesLineCount=0 (the default) the assumed line count is 1, which in turn enables "big block of mem" if AllocThreshold is any value above 0.

If AllocMax2 is a value other than zero, then that amount of memory will be allocated in one go at the beginning of Entries_Open and released in Entries_Close.  That memory is then used by all the hash routines that work on lists and nodes, including strdup's so that memory is not constantly fetched (also potentially stops fragmentation of memory).

This is basically designed to stop CVSNT Server thrashing the memory allocation routine.

The actual "bug" that was causing the slowdown was bug4804 - having the check for "use windows native memory" in subr xmalloc() in combination with the number of times that Entries_Open calls xmalloc() was just a disaster.

The latest 4964 patch checks the setting of "use windows native memory" at startup in main() and that is all.  However all these perf changes may result in an improvement - but I've ensured they are now all off by default, in particular:
- HeapCreate2=0
- EntriesLineCount=0
- TestSpeed1=0
- PerformFind=1
- HeapSerialize=1

For maximum performance of add (and entries function generally, eg: edit) set these:
- HeapCreate2=1
- HeapSerialize=0
- AllocThreshold=1
- ListCacheSize=8192, 
- NodeCacheSize=16384

Optionally you can set:
- HeapInitial to a value > 262144
- EntriesLineCount=1
- AllocThreshold to a value > 1 (eg: 128)







More information about the cvsnt-commits mailing list