1
0
Эх сурвалжийг харах

adjust the size of the memory pools

Lee Thomason (grinliz) 13 жил өмнө
parent
commit
ac83b4e278
3 өөрчлөгдсөн 19 нэмэгдсэн , 9 устгасан
  1. 5 5
      tinyxml2.cpp
  2. 13 4
      tinyxml2.h
  3. 1 0
      xmltest.cpp

+ 5 - 5
tinyxml2.cpp

@@ -1502,11 +1502,11 @@ XMLDocument::~XMLDocument()
     DeleteChildren();
     delete [] _charBuffer;
 
-#if 0
-    textPool.Trace( "text" );
-    elementPool.Trace( "element" );
-    commentPool.Trace( "comment" );
-    attributePool.Trace( "attribute" );
+#if 1
+    _textPool.Trace( "text" );
+    _elementPool.Trace( "element" );
+    _commentPool.Trace( "comment" );
+    _attributePool.Trace( "attribute" );
 #endif
 
 #ifdef DEBUG

+ 13 - 4
tinyxml2.h

@@ -98,9 +98,9 @@ inline int TIXML_SNPRINTF( char* buffer, size_t size, const char* format, ... )
 #define TIXML_SSCANF   sscanf
 #endif
 
-static const int TIXML2_MAJOR_VERSION = 1;
-static const int TIXML2_MINOR_VERSION = 0;
-static const int TIXML2_PATCH_VERSION = 10;
+static const int TIXML2_MAJOR_VERSION = 1;
+static const int TIXML2_MINOR_VERSION = 0;
+static const int TIXML2_PATCH_VERSION = 10;
 
 namespace tinyxml2
 {
@@ -359,7 +359,16 @@ public:
         return _nUntracked;
     }
 
-    enum { COUNT = 1024/SIZE }; // Some compilers do not accept to use COUNT in private part if COUNT is private
+	// This number is perf sensitive. 4k seems like a good tradeoff on my machine.
+	// The test file is large, 170k.
+	// Release:		VS2010 gcc(no opt)
+	//		1k:		4000
+	//		2k:		4000
+	//		4k:		3900	21000
+	//		16k:	5200
+	//		32k:	4300
+	//		64k:	4000	21000
+    enum { COUNT = (4*1024)/SIZE }; // Some compilers do not accept to use COUNT in private part if COUNT is private
 
 private:
     union Chunk {

+ 1 - 0
xmltest.cpp

@@ -289,6 +289,7 @@ int main( int argc, const char ** argv )
 		if ( !errorID ) {
 			printf( "Load time=%d\n", loadTime - startTime );
 			printf( "Delete time=%d\n", deleteTime - loadTime );
+			printf( "Total time=%d\n", deleteTime - startTime );
 		}
 		exit(0);
 	}