You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2017/12/28 10:53:40 UTC

svn commit: r1819417 - /poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

Author: centic
Date: Thu Dec 28 10:53:40 2017
New Revision: 1819417

URL: http://svn.apache.org/viewvc?rev=1819417&view=rev
Log:
Bug 61665: Enhance SSPerformanceTest some more to add a warmup run and allow to run with unsynchronized XmlBeans

Modified:
    poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

Modified: poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java?rev=1819417&r1=1819416&r2=1819417&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java Thu Dec 28 10:53:40 2017
@@ -20,10 +20,12 @@ package org.apache.poi.ss.examples;
 
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.poi.POIXMLTypeLoader;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellStyle;
@@ -42,27 +44,47 @@ import org.apache.poi.xssf.usermodel.XSS
 
 public class SSPerformanceTest {
     public static void main(String[] args) throws IOException {
-        if (args.length != 4) usage("need four command arguments");
+        if (args.length < 4) {
+            usage("need at least four command arguments");
+        }
 
         String type = args[0];
-        long timeStarted = System.currentTimeMillis();
-        Workbook workBook = createWorkbook(type);
-        boolean isHType = workBook instanceof HSSFWorkbook;
-
         int rows = parseInt(args[1], "Failed to parse rows value as integer");
         int cols = parseInt(args[2], "Failed to parse cols value as integer");
         boolean saveFile = parseInt(args[3], "Failed to parse saveFile value as integer") != 0;
 
-        addContent(workBook, isHType, rows, cols);
+        boolean warmup = false;
+        for(int arg = 4; arg < args.length;arg++) {
+            if(args[arg].equals("--unsynchronized-xmlbeans")) {
+                POIXMLTypeLoader.DEFAULT_XML_OPTIONS.setUnsynchronized();
+            }
+            if(args[arg].equals("--with-warmup-run")) {
+                warmup = true;
+            }
+        }
 
-        if (saveFile) {
-            String fileName = type + "_" + rows + "_" + cols + "." + getFileSuffix(args[0]);
-            saveFile(workBook, fileName);
+        if(warmup) {
+            System.out.println("Performing a warmup run first");
+            runWithArgs(type, rows, cols, saveFile);
         }
+
+        long timeStarted = System.currentTimeMillis();
+        runWithArgs(type, rows, cols, saveFile);
         long timeFinished = System.currentTimeMillis();
-        System.out.println("Elapsed " + (timeFinished-timeStarted)/1000 + " seconds");
-        
-        workBook.close();
+
+        System.out.printf("Elapsed %.2f seconds for arguments %s\n", ((double)timeFinished - timeStarted) / 1000, Arrays.toString(args));
+    }
+
+    private static void runWithArgs(String type, int rows, int cols, boolean saveFile) throws IOException {
+        try (Workbook workBook = createWorkbook(type)) {
+            boolean isHType = workBook instanceof HSSFWorkbook;
+            addContent(workBook, isHType, rows, cols);
+
+            if (saveFile) {
+                String fileName = type + "_" + rows + "_" + cols + "." + getFileSuffix(type);
+                saveFile(workBook, fileName);
+            }
+        }
     }
 
     private static void addContent(Workbook workBook, boolean isHType, int rows, int cols) {
@@ -192,7 +214,7 @@ public class SSPerformanceTest {
 
     static void usage(String message) {
         System.err.println(message);
-        System.err.println("usage: java SSPerformanceTest HSSF|XSSF|SXSSF rows cols saveFile (0|1)? ");
+        System.err.println("usage: java SSPerformanceTest HSSF|XSSF|SXSSF rows cols saveFile (0|1)? [--unsynchronized-xmlbeans] [--with-warmup-run]");
         System.exit(1);
     }
 
@@ -203,9 +225,9 @@ public class SSPerformanceTest {
             return new XSSFWorkbook();
         else if ("SXSSF".equals(type))
             return new SXSSFWorkbook();
-        else
-            usage("Unknown type \"" + type + "\"");
-        return null;
+
+        usage("Unknown type \"" + type + "\"");
+        throw new IllegalArgumentException("Should not reach this point");
     }
 
     static String getFileSuffix(String type) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org