From: <be...@us...> - 2006-10-26 15:54:46
|
Revision: 129 http://svn.sourceforge.net/pzfilereader/?rev=129&view=rev Author: benoitx Date: 2006-10-26 08:54:43 -0700 (Thu, 26 Oct 2006) Log Message: ----------- Added a heuristic test that proves that using a StringBuffer delete is better than creating a new one... Modified Paths: -------------- trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java Modified: trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java =================================================================== --- trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java 2006-10-26 15:53:08 UTC (rev 128) +++ trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java 2006-10-26 15:54:43 UTC (rev 129) @@ -68,7 +68,8 @@ menu.addMenuItem("DelimitedMultiLine", "doDelimitedMultiLine", false); menu.addMenuItem("NumericsAndDates", "doNumericsAndDates", false); menu.addMenuItem("Ask for GC", "doGC", false); - + menu.addMenuItem("Test StringBuffer", "doStringBuffer", false); + menu.addMenuItem("Who you gonna call?", "doCall", false); menu.displayMenu(); } @@ -82,69 +83,69 @@ public void doCSVHeaderAndTrailer() { try { final String mapping = ConsoleMenu.getString("Mapping ", CSVHeaderAndTrailer.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", CSVHeaderAndTrailer.getDefaultDataFile()); - CSVHeaderAndTrailer.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", CSVHeaderAndTrailer.getDefaultDataFile()); + CSVHeaderAndTrailer.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } } - + public void doCSVPerformanceTest() { try { final String mapping = ConsoleMenu.getString("CSV File ", "SampleCSV.csv"); final boolean data = ConsoleMenu.getBoolean("Traverse the entire parsed file", true); final boolean verbose = ConsoleMenu.getBoolean("Verbose", false); - CSVPerformanceTest.call(mapping,verbose,data); + CSVPerformanceTest.call(mapping, verbose, data); } catch (Exception e) { e.printStackTrace(); } } - + public void doDelimitedWithPZMap() { try { final String mapping = ConsoleMenu.getString("Mapping ", DelimitedWithPZMap.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", DelimitedWithPZMap.getDefaultDataFile()); - DelimitedWithPZMap.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", DelimitedWithPZMap.getDefaultDataFile()); + DelimitedWithPZMap.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } } - + public void doDelimitedWithPZMapErrors() { try { final String mapping = ConsoleMenu.getString("Mapping ", DelimitedWithPZMapErrors.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", DelimitedWithPZMapErrors.getDefaultDataFile()); - DelimitedWithPZMapErrors.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", DelimitedWithPZMapErrors.getDefaultDataFile()); + DelimitedWithPZMapErrors.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } } - + public void doDelimitedFileExportToExcel() { try { final String mapping = ConsoleMenu.getString("Mapping ", DelimitedFileExportToExcel.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", DelimitedFileExportToExcel.getDefaultDataFile()); - DelimitedFileExportToExcel.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", DelimitedFileExportToExcel.getDefaultDataFile()); + DelimitedFileExportToExcel.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } } - + public void doFixedLengthWithPZMap() { try { final String mapping = ConsoleMenu.getString("Mapping ", FixedLengthWithPZMap.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", FixedLengthWithPZMap.getDefaultDataFile()); - FixedLengthWithPZMap.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", FixedLengthWithPZMap.getDefaultDataFile()); + FixedLengthWithPZMap.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } } - + public void doFixedLengthHeaderAndTrailer() { try { final String mapping = ConsoleMenu.getString("Mapping ", FixedLengthHeaderAndTrailer.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", FixedLengthHeaderAndTrailer.getDefaultDataFile()); - FixedLengthHeaderAndTrailer.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", FixedLengthHeaderAndTrailer.getDefaultDataFile()); + FixedLengthHeaderAndTrailer.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } @@ -153,19 +154,18 @@ public void doLargeDelimitedWithPZMap() { try { final String mapping = ConsoleMenu.getString("Mapping ", LargeDelimitedWithPZMap.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", LargeDelimitedWithPZMap.getDefaultDataFile()); - LargeDelimitedWithPZMap.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", LargeDelimitedWithPZMap.getDefaultDataFile()); + LargeDelimitedWithPZMap.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } } - public void doLargeFixedLengthWithPZMap() { try { final String mapping = ConsoleMenu.getString("Mapping ", LargeFixedLengthWithPZMap.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", LargeFixedLengthWithPZMap.getDefaultDataFile()); - LargeFixedLengthWithPZMap.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", LargeFixedLengthWithPZMap.getDefaultDataFile()); + LargeFixedLengthWithPZMap.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } @@ -177,7 +177,7 @@ final int rows = ConsoleMenu.getInt("Number of rows", 2000000); String filename = "LargeSampleCSV.csv"; CSVTestFileCreator.createFile(cols, rows, filename); - + System.out.println("Large file created"); CSVLarge.call(filename); @@ -185,10 +185,10 @@ e.printStackTrace(); } } - + public void doLowLevelParse() { try { - final String data = ConsoleMenu.getString( "Data ", LowLevelParse.getDefaultDataFile()); + final String data = ConsoleMenu.getString("Data ", LowLevelParse.getDefaultDataFile()); LowLevelParse.call(data); } catch (Exception e) { e.printStackTrace(); @@ -197,7 +197,7 @@ public void doDelimitedMultiLine() { try { - final String data = ConsoleMenu.getString( "Data ", DelimitedMultiLine.getDefaultDataFile()); + final String data = ConsoleMenu.getString("Data ", DelimitedMultiLine.getDefaultDataFile()); DelimitedMultiLine.call(data); } catch (Exception e) { e.printStackTrace(); @@ -207,8 +207,8 @@ public void doNumericsAndDates() { try { final String mapping = ConsoleMenu.getString("Mapping ", NumericsAndDates.getDefaultMapping()); - final String data = ConsoleMenu.getString( "Data ", NumericsAndDates.getDefaultDataFile()); - NumericsAndDates.call(mapping,data); + final String data = ConsoleMenu.getString("Data ", NumericsAndDates.getDefaultDataFile()); + NumericsAndDates.call(mapping, data); } catch (Exception e) { e.printStackTrace(); } @@ -218,4 +218,33 @@ System.gc(); } + public void doStringBuffer() { + final int repeat = ConsoleMenu.getInt("How many times?", 100000); + final int characters = ConsoleMenu.getInt("How many char?", 20); + + long start = System.currentTimeMillis(); + for (int i = 0; i < repeat; i++) { + StringBuffer sb = new StringBuffer(); + for (int u = 0; u < 1000; u++) { + sb.append("h"); + } + } + long stop = System.currentTimeMillis(); + + System.out.println("Creating new SB " + (stop - start) + " ms."); + + start = System.currentTimeMillis(); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < repeat; i++) { + for (int u = 0; u < characters; u++) { + sb.append("h"); + } + sb.delete(0, sb.length()); + } + stop = System.currentTimeMillis(); + + System.out.println("Deleting existing SB " + (stop - start) + " ms."); + + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <be...@us...> - 2006-10-31 17:33:53
|
Revision: 161 http://svn.sourceforge.net/pzfilereader/?rev=161&view=rev Author: benoitx Date: 2006-10-31 09:33:49 -0800 (Tue, 31 Oct 2006) Log Message: ----------- Added an option (17) to compare the BX parser and the current parser. It should be noted that the current parser fails on some tests (Paul could you fix?) Just select the number of repeat, the number of columns and whether the column should be qualified or not... tell me your results. ta Modified Paths: -------------- trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java Modified: trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java =================================================================== --- trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java 2006-10-31 17:12:14 UTC (rev 160) +++ trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java 2006-10-31 17:33:49 UTC (rev 161) @@ -19,6 +19,8 @@ import net.sf.pzfilereader.examples.lowlevelparse.LowLevelParse; import net.sf.pzfilereader.examples.multilinedelimitedrecord.DelimitedMultiLine; import net.sf.pzfilereader.examples.numericsanddates.NumericsAndDates; +import net.sf.pzfilereader.util.BXParser; +import net.sf.pzfilereader.util.ParserUtils; /** * @author Benoit Xhenseval @@ -69,6 +71,7 @@ menu.addMenuItem("NumericsAndDates", "doNumericsAndDates", false); menu.addMenuItem("Ask for GC", "doGC", false); menu.addMenuItem("Test StringBuffer", "doStringBuffer", false); + menu.addMenuItem("Test Parsers", "doTestParsers", false); menu.addMenuItem("Who you gonna call?", "doCall", false); menu.displayMenu(); @@ -247,4 +250,41 @@ } + public void doTestParsers() { + final int repeat = ConsoleMenu.getInt("How many times?", 1000); + final int characters = ConsoleMenu.getInt("How many columns?", 100); + final boolean qualif = ConsoleMenu.getBoolean("With qualifier?", true); + + StringBuilder aRow = new StringBuilder(); + for (int i = 0; i < characters; i++) { + if (qualif) { + aRow.append("\""); + } + aRow.append("Column ").append(i); + if (qualif) { + aRow.append("\""); + } + } + + final String line = aRow.toString(); + + long start = System.currentTimeMillis(); + for (int i = 0; i < repeat; i++) { + ParserUtils.splitLine(line, ',', '\"'); + } + long stop = System.currentTimeMillis(); + + System.out.println("ParserUtil " + (stop - start) + " ms."); + + start = System.currentTimeMillis(); + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < repeat; i++) { + BXParser.splitLine(line, ',', '\"'); + } + stop = System.currentTimeMillis(); + + System.out.println("BXParser " + (stop - start) + " ms."); + + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <zep...@us...> - 2006-12-16 15:29:07
|
Revision: 234 http://svn.sourceforge.net/pzfilereader/?rev=234&view=rev Author: zepernick Date: 2006-12-16 07:29:07 -0800 (Sat, 16 Dec 2006) Log Message: ----------- removed 1.5 only StringBuilder Modified Paths: -------------- trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java Modified: trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java =================================================================== --- trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java 2006-12-16 15:15:30 UTC (rev 233) +++ trunk/PZFileReaderSamples/src/main/java/net/sf/pzfilereader/examples/Examples.java 2006-12-16 15:29:07 UTC (rev 234) @@ -255,7 +255,7 @@ final int numberOfCols = ConsoleMenu.getInt("How many columns?", 100); final boolean qualif = ConsoleMenu.getBoolean("With qualifier?", true); - StringBuilder aRow = new StringBuilder(); + StringBuffer aRow = new StringBuffer(); for (int i = 0; i < numberOfCols; i++) { if (qualif) { aRow.append("\""); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |