diff --git a/.gitattributes b/.gitattributes index dc89f921375..28a6b0e8eb8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -73,6 +73,7 @@ icu4c/source/test/intltest/dadrfmt.h -text icu4c/source/test/intltest/fldset.cpp -text icu4c/source/test/intltest/fldset.h -text icu4c/source/test/perf/Makefile.in -text +icu4c/source/test/perf/README -text icu4c/source/test/perf/collationperf/CollPerf.pl -text icu4c/source/test/perf/collationperf/Makefile.in -text icu4c/source/test/perf/collationperf/collperf.cpp -text diff --git a/icu4c/source/test/perf/README b/icu4c/source/test/perf/README new file mode 100644 index 00000000000..03acaaed8c7 --- /dev/null +++ b/icu4c/source/test/perf/README @@ -0,0 +1,61 @@ +Copyright (C) 2008, International Business Machines +Corporation and others. All Rights Reserved. + +README for ICU4C Performance Test + +Introduction: +The performance tests in ICU4C compares various aspects of ICU against previous versions of ICU, +Posix, and/or Windows. Some tests only run on Windows and are labeled accordingly.All of the +performance tests are driven by a perl-based script which calls the underlying C program and +displays the statistical analysis of the test in an easy to read HTML web page. Each test will +have its own web page. + + +Requirements: +The most up to date tests are in ICU 4.0 and later. In addition, most tests depend on data which are +in a seperate repository. + +Data repository: +http://source.icu-project.org/repos/icu/data/trunk/test/perf +There are 3 folders in here: collation, conversion, and udr. + + +Running Performance Test: + +1) You should create a directory to hold the ICU (current and previous versions) and the data. + (e.g. C:\ICUPerformanceTest) + +2) Checkout the current ICU and 2 previous versions (for proper regression testing) and the data + into the ICUPerformanceTest directory. + +3) Do a general build on all the ICUs either through Visual Studios or with the Makefile. + +4) Build the ICU performance tests either through Visual Studios or with the Makefile. + (The location of the performance test is: icu/source/test/perf) + +5) Go to perf/perldriver and edit Common.pl. + In this file, you will need to set a few variables: + a) ICU version numbers + b) Path to the performance test data + c) Path to the root directory of the different versions of ICU + d) Whether or not you are running the test on Windows + * The Path needs to be absolute + * All other variables should be left as is + +6) In the perf directory, there are several other directories for the various tests that can be run. + (e.g. convperf (Conversion tests)). Go to each directory and execute the perl script for each test + you want to run. (e.g. CharPerf_r.pl in CharPerf directory) + * You only need to run the perl script from the latest ICU version. The corresponding perl script + in the previous versions of ICU do not need to be run seperately. + * All of the test result web pages will be stored in perf/results. + + +Note: When running on Windows, cygwin is preferred. +Note: If a test needs to be run on Windows, a message will be displayed. +Note: After building the performance tests, it is a good idea to execute each C program to ensure that each + test can run. (e.g. convperf.exe) +Note: To run the actual performance test, you will need to setup Perl with the following modules: + a) Statistics/Distribution.pm + b) Statistics/Descriptive.pm +Note: Some tests take a while depending on the machine it is running on so a script to run each performance test's + perl script might be helpful. diff --git a/icu4c/source/test/perf/perldriver/Common.pl b/icu4c/source/test/perf/perldriver/Common.pl index eaab89d68c6..393446bfb26 100644 --- a/icu4c/source/test/perf/perldriver/Common.pl +++ b/icu4c/source/test/perf/perldriver/Common.pl @@ -5,6 +5,7 @@ # * others. All Rights Reserved. # ******************************************************************** +# Settings by user $ICULatestVersion = "4.0"; # Change to respective version number $ICUPreviousVersion = "3.8"; # Change to respective version number $ICUPrevious2Version = "3.6"; # Change to respective version number @@ -16,7 +17,7 @@ $ICUPrevious = ""; # Change to path of previous ICU $ICUPrevious2 = ""; # Change to path of ICU before previous release $OnWindows = 0; # Change to 1 if on Windows - +# End of settings by user $CollationDataPath = $PerformanceDataPath."/collation"; # Collation Performance Data Path $ConversionDataPath = $PerformanceDataPath."/conversion"; # Conversion Performance Data Path