pauldick    01/01/08 14:24:46

  Modified:    c/Tests/Performance perf.cpp
  Log:
  Updates that use the harness code to output xml data
  
  Revision  Changes    Path
  1.5       +54 -44    xml-xalan/c/Tests/Performance/perf.cpp
  
  Index: perf.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/Tests/Performance/perf.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- perf.cpp  2000/11/20 20:40:23     1.4
  +++ perf.cpp  2001/01/08 22:24:39     1.5
  @@ -76,11 +76,10 @@
   #include <PlatformSupport/XalanFileOutputStream.hpp>
   #include <PlatformSupport/XalanOutputStreamPrintWriter.hpp>
   
  -#include <XercesParserLiaison/XercesDOMSupport.hpp>
  -#include <XercesParserLiaison/XercesParserLiaison.hpp>
  +#include <XalanSourceTree/XalanSourceTreeDOMSupport.hpp>
  +#include <XalanSourceTree/XalanSourceTreeParserLiaison.hpp>
   
   #include <XPath/XObjectFactoryDefault.hpp>
  -#include <XPath/XPathSupportDefault.hpp>
   #include <XPath/XPathFactoryDefault.hpp>
   
   #include <XSLT/StylesheetConstructionContextDefault.hpp>
  @@ -122,17 +121,17 @@
   const char*  xslStylesheets[] =
   {
        "v:\\xsl-test\\perf\\basic\\basic-all_well",
  -     //"v:\\xsl-test\\perf\\basic\\basic-datetranscode",
  -     //"v:\\xsl-test\\perf\\basic\\basic-dict2", 
  -     //"v:\\xsl-test\\perf\\basic\\basic-Fischer-Euwe",
  -     //"v:\\xsl-test\\perf\\basic\\basic-queens", 
  +     "v:\\xsl-test\\perf\\basic\\basic-datetranscode",
  +     "v:\\xsl-test\\perf\\basic\\basic-dict2", 
  +     "v:\\xsl-test\\perf\\basic\\basic-Fischer-Euwe",
  +     "v:\\xsl-test\\perf\\basic\\basic-queens", 
        "v:\\xsl-test\\perf\\large\\large-all_well",
  -     //"v:\\xsl-test\\perf\\large\\large-evans_large", 
  -     //"v:\\xsl-test\\perf\\nodes\\nodes-fancy_xml_tree_viewer_34",
  -     //"v:\\xsl-test\\perf\\nodes\\nodes-showtree-19991008",
  -     //"v:\\xsl-test\\perf\\sort\\sort-big",
  -     //"v:\\xsl-test\\perf\\xpath\\xpath-evans_small",
  -     //"v:\\xsl-test\\perf\\xpath\\xpath-evans_tiny",
  +     "v:\\xsl-test\\perf\\large\\large-evans_large", 
  +     "v:\\xsl-test\\perf\\nodes\\nodes-fancy_xml_tree_viewer_34",
  +     "v:\\xsl-test\\perf\\nodes\\nodes-showtree-19991008",
  +     "v:\\xsl-test\\perf\\sort\\sort-big",
  +     "v:\\xsl-test\\perf\\xpath\\xpath-evans_small",
  +     "v:\\xsl-test\\perf\\xpath\\xpath-evans_tiny",
        0
   };
   const char*  outputDir = "d:\\xslt-results\\perf\\test\\";
  @@ -151,12 +150,12 @@
   {
        XMLFileReporter theXMLFileReporter;
   
  -     theXMLFileReporter.setFileName("testfile.txt");
  +     theXMLFileReporter.setFileName("cpp.xml");
        theXMLFileReporter.initialize();
  -     theXMLFileReporter.logTestFileInit("CConformanceTest - Iterates over 
all conf test dirs and validates outputs USING Xalan-C");
  -     theXMLFileReporter.logTestFileClose("xxx", "pass");             
  -     theXMLFileReporter.close();
  +     theXMLFileReporter.logTestFileInit("Performance Testing - Reports 
performance times for single transform, and average for multiple transforms 
using compiled stylesheet");
  +     
   
  +
   #if !defined(NDEBUG) && defined(_MSC_VER)
        _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | 
_CRTDBG_LEAK_CHECK_DF);
   
  @@ -189,10 +188,15 @@
   
                          for(int i = 0; xslStylesheets[i] != 0; i++)
                          {
  +                             // Output file name to result log.
  +                             
theXMLFileReporter.logTestCaseInit(xslStylesheets[i]);
  +
                                // Create the necessary support objects to 
instantiate a processor.
  -                             XercesDOMSupport                            
csDOMSupport;
  -                             XercesParserLiaison                             
csParserLiaison(csDOMSupport);
  -                             XPathSupportDefault                             
csXPathSupport(csDOMSupport);
  +                             XalanSourceTreeDOMSupport               
csDOMSupport;
  +                             XalanSourceTreeParserLiaison    
csParserLiaison(csDOMSupport);
  +
  +                             csDOMSupport.setParserLiaison(&csParserLiaison);
  +
                                XSLTProcessorEnvSupportDefault  
csXSLTProcessorEnvSupport;
                                XObjectFactoryDefault                   
csXObjectFactory;
                                XPathFactoryDefault                             
csXPathFactory;
  @@ -201,7 +205,6 @@
                                // ProcessorEnvSupport object
                                XSLTEngineImpl  csProcessor(
                                                csParserLiaison,
  -                                             csXPathSupport,
                                                csXSLTProcessorEnvSupport,
                                                csDOMSupport,
                                                csXObjectFactory,   
  @@ -233,28 +236,28 @@
                                // specified input XSL. We don't have to delete 
it, since it is owned by the 
                                // StylesheetConstructionContext instance.
   
  -                             const double startTime = clock();
  +                             const clock_t startTime = clock();
                                        glbStylesheetRoot= 
csProcessor.processStylesheet(csStylesheetSourceXSL,
                                                                                
                   csConstructionContext);
  -                             const double endTime = clock();
  -                             cout << "Compliation took: " << endTime - 
startTime << endl;
  -                             
  +                             const clock_t endTime = clock();
                                assert(glbStylesheetRoot != 0);
   
  +                             // Output stats on stylesheet compliation to 
console and log file.
  +                             cout << "Compliation of Stylesheet took: " << 
endTime - startTime << endl;
  +                             theXMLFileReporter.logStatistic(60, 
endTime-startTime,0.0,"Compilation of stylesheet took: ");
  +
                                // Have the processor create a compiled 
SourceDocument for the specified
                                // input XML. 
                                glbSourceXML = 
csProcessor.getSourceTreeFromInput(csSourceXML);
                                assert(glbSourceXML != 0);
   
  -                             //cout << endl << "Testing: " << 
xslStylesheets[i] << endl;
  -
                                // The execution context uses the same factory 
support objects as
                                // the processor, since those objects have the 
same lifetime as
                                // other objects created as a result of the 
execution.
                                StylesheetExecutionContextDefault       
psExecutionContext(
                                                        csProcessor,
                                                        
csXSLTProcessorEnvSupport,
  -                                                     csXPathSupport,
  +                                                     csDOMSupport,
                                                        csXObjectFactory);
   
                                const XalanDOMString  
outputfile(//XalanDOMString(outputDir) +
  @@ -265,37 +268,43 @@
                                //XSLTInputSource               
csSourceXML(glbSourceXML);
                                XSLTResultTarget        
theResultTarget(outputfile);
   
  -                             // Set the stylesheet to be the compiled 
stylesheet. Then do the transform.
  +                             // Set the stylesheet to be the compiled 
stylesheet, then do a single transform.
                                
csProcessor.setStylesheetRoot(glbStylesheetRoot);
  -
  -                             const double singleStart = clock();
  -                                     csProcessor.process(csSourceXML, 
theResultTarget,psExecutionContext);
  -                             const double singleEnd = clock();
   
  +                             const clock_t singleStart = clock();
  +                             csProcessor.process(csSourceXML, 
theResultTarget,psExecutionContext);
  +                             const clock_t singleEnd = clock();
                                psExecutionContext.reset();
  +                             
  +                             // Output stats on transform times to console 
and result log
                                cout << "Single Transform time: " << singleEnd 
- singleStart << endl;
  +                             theXMLFileReporter.logStatistic(60,singleEnd - 
singleStart,0,"Single transform took: ");
   
  -
  -/*
  -                             const double startTime = clock();
  -                             //cout << endl << "Clock before transforms: " 
<< startTime << endl;
  +                             const clock_t multiStartTime = clock();
                                for(int j = 0; j < iterCount; ++j)
                                {       
                                        
csProcessor.setStylesheetRoot(glbStylesheetRoot);
                                        csProcessor.process(csSourceXML, 
theResultTarget,psExecutionContext);
                                        psExecutionContext.reset();
                                }
  -                             const double endTime = clock();
  -                             //cout << "Clock after transforms: " << endTime 
<< endl;
  -                             //cout << "Total clock ticks: " << endTime - 
startTime << endl;
  -                             const double    millis = ((endTime - startTime) 
/ CLOCKS_PER_SEC) * 1000.0;
  -                             //cout << "Milliseconds: " << millis << endl;
  +
  +                             csParserLiaison.reset();
  +
  +                             const clock_t multiEndTime = clock();
  +                             const double millis = ((multiEndTime - 
multiStartTime) / CLOCKS_PER_SEC) * 1000.0;
  +
  +                             char tmp[100];
  +                             sprintf(tmp, "%s%d%s","Average transform time 
based on ", iterCount, "iterations."); 
  +                             // Output stats on transform times to console 
and result log
                                cout << "Averaged: " << millis / iterCount << " 
for " << iterCount << " iterations" << endl;
  -*/
  +                             theXMLFileReporter.logStatistic(60, 
millis/iterCount,0.0,tmp);
  +                             
theXMLFileReporter.logTestCaseClose(xslStylesheets[i], "Done");
     }
                                
                }
  -
  +                     //theXMLFileReporter.logTestFileClose();
  +                     
theXMLFileReporter.logTestFileClose("Performance","Done");
  +                     theXMLFileReporter.close();
                        XMLPlatformUtils::Terminate();
                }
                catch(...)
  @@ -305,6 +314,7 @@
                                 << endl;
                }
        }
  +
   
        return 0;
   }
  
  
  

Reply via email to