Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 1 | Copyright (C) 2008-2013, International Business Machines |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 2 | Corporation and others. All Rights Reserved. |
| 3 | |
| 4 | README for ICU4C Performance Test |
| 5 | |
| 6 | Introduction: |
| 7 | The performance tests in ICU4C compares various aspects of ICU against previous versions of ICU, |
| 8 | Posix, and/or Windows. Some tests only run on Windows and are labeled accordingly.All of the |
| 9 | performance tests are driven by a perl-based script which calls the underlying C program and |
| 10 | displays the statistical analysis of the test in an easy to read HTML web page. Each test will |
| 11 | have its own web page. |
| 12 | |
| 13 | |
| 14 | Requirements: |
| 15 | The most up to date tests are in ICU 4.0 and later. In addition, most tests depend on data which are |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 16 | in a separate repository. |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 17 | |
| 18 | Data repository: |
| 19 | http://source.icu-project.org/repos/icu/data/trunk/test/perf |
| 20 | There are 3 folders in here: collation, conversion, and udr. |
| 21 | |
| 22 | |
| 23 | Running Performance Test: |
| 24 | |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 25 | 1) Checkout the current ICU and 2 previous versions (for proper regression testing) and the data |
| 26 | into your local system. |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 27 | |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 28 | 2) Do a general build on all the ICUs either through Visual Studios or with the Makefile. |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 29 | |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 30 | 3) Build the ICU performance tests either through Visual Studios or with the Makefile. |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 31 | (The location of the performance test is: icu/source/test/perf) |
| 32 | |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 33 | 4) Go to perf/perldriver, copy Common.pl.template to Common.pl. |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 34 | In this file, you will need to set a few variables: |
| 35 | a) ICU version numbers |
| 36 | b) Path to the performance test data |
| 37 | c) Path to the root directory of the different versions of ICU |
| 38 | d) Whether or not you are running the test on Windows |
| 39 | * The Path needs to be absolute |
| 40 | * All other variables should be left as is |
| 41 | |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 42 | 5) Create a directory pref/results. All of the test result web pages will be |
| 43 | stored in this directory. |
| 44 | |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 45 | 6) In the perf directory, there are several other directories for the various tests that can be run. |
| 46 | (e.g. convperf (Conversion tests)). Go to each directory and execute the perl script for each test |
| 47 | you want to run. (e.g. CharPerf_r.pl in CharPerf directory) |
| 48 | * You only need to run the perl script from the latest ICU version. The corresponding perl script |
| 49 | in the previous versions of ICU do not need to be run seperately. |
David Ghandehari | 9e5b587 | 2016-07-28 09:50:04 -0700 | [diff] [blame] | 50 | |
| 51 | |
| 52 | Note: When running on Windows, cygwin is preferred. |
| 53 | Note: If a test needs to be run on Windows, a message will be displayed. |
| 54 | Note: After building the performance tests, it is a good idea to execute each C program to ensure that each |
| 55 | test can run. (e.g. convperf.exe) |
| 56 | Note: To run the actual performance test, you will need to setup Perl with the following modules: |
| 57 | a) Statistics/Distribution.pm |
| 58 | b) Statistics/Descriptive.pm |
| 59 | Note: Some tests take a while depending on the machine it is running on so a script to run each performance test's |
| 60 | perl script might be helpful. |
Andrew Top | c2b4089 | 2017-01-19 14:03:49 -0800 | [diff] [blame^] | 61 | Note: The perl script is only used in one version of ICU. When you run regression tests, |
| 62 | it is recommended to run the tests from the later version of ICU. |