]> granicus.if.org Git - libexpat/commitdiff
Modified code to use XML_ParserReset() instead of creating a new
authorKarl Waclawek <kwaclaw@users.sourceforge.net>
Fri, 7 Apr 2006 20:25:43 +0000 (20:25 +0000)
committerKarl Waclawek <kwaclaw@users.sourceforge.net>
Fri, 7 Apr 2006 20:25:43 +0000 (20:25 +0000)
parser instance on each iteration of the main loop.

expat/tests/benchmark/benchmark.c

index 86266a00f33a7a2e921a6f9c8508c36c5ee45ef5..30a5284f8d6238818de3ac44f9a3625cef04940f 100644 (file)
@@ -72,15 +72,16 @@ int main (int argc, char *argv[])
   fileSize = fread (XMLBuf, sizeof (char), fileAttr.st_size, fd);
   fclose (fd);
   
+  if (ns)
+    parser = XML_ParserCreateNS(NULL, '!');
+  else
+    parser = XML_ParserCreate(NULL);
+
   i = 0;
   XMLBufEnd = XMLBuf + fileSize;
   while (i < nrOfLoops) {
     XMLBufPtr = XMLBuf;
     isFinal = 0;
-    if (ns)
-      parser = XML_ParserCreateNS(NULL, '!');
-    else
-      parser = XML_ParserCreate(NULL);
     tstart = clock();
     do {
       int parseBufferSize = XMLBufEnd - XMLBufPtr;
@@ -102,10 +103,11 @@ int main (int argc, char *argv[])
     } while (!isFinal);
     tend = clock();
     cpuTime += ((double) (tend - tstart)) / CLOCKS_PER_SEC;
-    XML_ParserFree (parser);
+    XML_ParserReset(parser, NULL);
     i++;
   }
 
+  XML_ParserFree (parser);
   free (XMLBuf);
       
   printf ("%d loops, with buffer size %d. Average time per loop: %f\n",