]> git.saurik.com Git - apple/icu.git/blob - icuSources/test/perf/collperf2/CollPerf2_r.pl
ICU-66108.tar.gz
[apple/icu.git] / icuSources / test / perf / collperf2 / CollPerf2_r.pl
1 #!/usr/bin/perl
2 # ********************************************************************
3 # Copyright (C) 2016 and later: Unicode, Inc. and others.
4 # License & terms of use: http://www.unicode.org/copyright.html#License
5 # ********************************************************************
6 # ********************************************************************
7 # COPYRIGHT:
8 # Copyright (c) 2013-2014, International Business Machines Corporation and
9 # others. All Rights Reserved.
10 # ********************************************************************
11
12 # Variables need to be set in ../perldriver/Common.pl for where ICU is on your machine.
13 # Copy Common.pl.template to Common.pl and modify it.
14 #
15 # Sample Common.pl "Settings by user" for a Linux out-of-source build:
16 #
17 # $ICULatestVersion = "collv2";
18 # $ICUPreviousVersion = "52";
19 #
20 # $PerformanceDataPath = "/home/mscherer/svn.icudata/trunk/src/test/perf";
21 #
22 # $ICULatest = "/home/mscherer/svn.icu/collv2/bld";
23 # $ICUPrevious = "/home/mscherer/svn.icu/trunk/bld";
24 #
25 # The first time around, you also need to
26 # source/test/perf/collperf2$ mkdir ../results
27 # Then invoke
28 # source/test/perf/collperf2$ ./CollPerf2_r.pl
29 #
30 # Sample debug invocation:
31 # ~/svn.icu/trunk/dbg/test/perf/collperf2$ LD_LIBRARY_PATH=../../../lib:../../../tools/ctestfw ./collperf2 -t 5 -p 1 -L "de" -f /home/mscherer/svn.icudata/trunk/src/test/perf/collation/TestNames_Latin.txt TestStringPieceSort
32
33 #use strict;
34
35 use lib '../perldriver';
36
37 require "../perldriver/Common.pl";
38
39 use PerfFramework;
40
41 my $options = {
42 "title"=>"Collation Performance Regression: ICU (".$ICUPreviousVersion." and ".$ICULatestVersion.")",
43 "headers"=>"ICU".$ICUPreviousVersion." ICU".$ICULatestVersion,
44 "operationIs"=>"Collator",
45 "passes"=>"1",
46 "time"=>"2",
47 #"outputType"=>"HTML",
48 "dataDir"=>$CollationDataPath,
49 "outputDir"=>"../results"
50 };
51
52 # programs
53 # tests will be done for all the programs. Results will be stored and connected
54 my $p1, $p2;
55
56 if ($OnWindows) {
57 $p1 = "cd ".$ICUPrevious."/bin && ".$ICUPathPrevious."/collperf2/$WindowsPlatform/Release/collperf2.exe";
58 $p2 = "cd ".$ICULatest."/bin && ".$ICUPathLatest."/collperf2/$WindowsPlatform/Release/collperf2.exe";
59 } else {
60 $p1 = "LD_LIBRARY_PATH=".$ICUPrevious."/lib:".$ICUPrevious."/tools/ctestfw ".$ICUPrevious."/test/perf/collperf2/collperf2";
61 $p2 = "LD_LIBRARY_PATH=".$ICULatest."/lib:".$ICULatest."/tools/ctestfw ".$ICULatest."/test/perf/collperf2/collperf2";
62 }
63
64 my $tests = {
65 "ucol_strcoll/len", ["$p1,TestStrcoll", "$p2,TestStrcoll"],
66 "ucol_strcoll/null", ["$p1,TestStrcollNull", "$p2,TestStrcollNull"],
67 "ucol_strcoll/len/similar", ["$p1,TestStrcollSimilar", "$p2,TestStrcollSimilar"],
68
69 "ucol_strcollUTF8/len", ["$p1,TestStrcollUTF8", "$p2,TestStrcollUTF8"],
70 "ucol_strcollUTF8/null", ["$p1,TestStrcollUTF8Null", "$p2,TestStrcollUTF8Null"],
71 "ucol_strcollUTF8/len/similar", ["$p1,TestStrcollUTF8Similar", "$p2,TestStrcollUTF8Similar"],
72
73 "ucol_getSortKey/len", ["$p1,TestGetSortKey", "$p2,TestGetSortKey"],
74 "ucol_getSortKey/null", ["$p1,TestGetSortKeyNull", "$p2,TestGetSortKeyNull"],
75
76 "ucol_nextSortKeyPart/4_all", ["$p1,TestNextSortKeyPart_4All", "$p2,TestNextSortKeyPart_4All"],
77 "ucol_nextSortKeyPart/4x4", ["$p1,TestNextSortKeyPart_4x4", "$p2,TestNextSortKeyPart_4x4"],
78 "ucol_nextSortKeyPart/4x8", ["$p1,TestNextSortKeyPart_4x8", "$p2,TestNextSortKeyPart_4x8"],
79 "ucol_nextSortKeyPart/32_all", ["$p1,TestNextSortKeyPart_32All", "$p2,TestNextSortKeyPart_32All"],
80 "ucol_nextSortKeyPart/32x2", ["$p1,TestNextSortKeyPart_32x2", "$p2,TestNextSortKeyPart_32x2"],
81
82 "ucol_nextSortKeyPart/UTF8/4_all", ["$p1,TestNextSortKeyPartUTF8_4All", "$p2,TestNextSortKeyPartUTF8_4All"],
83 "ucol_nextSortKeyPart/UTF8/4x4", ["$p1,TestNextSortKeyPartUTF8_4x4", "$p2,TestNextSortKeyPartUTF8_4x4"],
84 "ucol_nextSortKeyPart/UTF8/4x8", ["$p1,TestNextSortKeyPartUTF8_4x8", "$p2,TestNextSortKeyPartUTF8_4x8"],
85 "ucol_nextSortKeyPart/UTF8/32_all", ["$p1,TestNextSortKeyPartUTF8_32All", "$p2,TestNextSortKeyPartUTF8_32All"],
86 "ucol_nextSortKeyPart/UTF8/32x2", ["$p1,TestNextSortKeyPartUTF8_32x2", "$p2,TestNextSortKeyPartUTF8_32x2"],
87
88 "Collator::compare/len", ["$p1,TestCppCompare", "$p2,TestCppCompare"],
89 "Collator::compare/null", ["$p1,TestCppCompareNull", "$p2,TestCppCompareNull"],
90 "Collator::compare/len/similar", ["$p1,TestCppCompareSimilar", "$p2,TestCppCompareSimilar"],
91
92 "Collator::compareUTF8/len", ["$p1,TestCppCompareUTF8", "$p2,TestCppCompareUTF8"],
93 "Collator::compareUTF8/null", ["$p1,TestCppCompareUTF8Null", "$p2,TestCppCompareUTF8Null"],
94 "Collator::compareUTF8/len/similar", ["$p1,TestCppCompareUTF8Similar", "$p2,TestCppCompareUTF8Similar"],
95
96 "Collator::getCollationKey/len", ["$p1,TestCppGetCollationKey", "$p2,TestCppGetCollationKey"],
97 "Collator::getCollationKey/null", ["$p1,TestCppGetCollationKeyNull", "$p2,TestCppGetCollationKeyNull"],
98
99 "sort UnicodeString*[]: compare()", ["$p1,TestUniStrSort", "$p2,TestUniStrSort"],
100 "sort StringPiece[]: compareUTF8()", ["$p1,TestStringPieceSortCpp", "$p2,TestStringPieceSortCpp"],
101 "sort StringPiece[]: ucol_strcollUTF8()", ["$p1,TestStringPieceSortC", "$p2,TestStringPieceSortC"],
102
103 "binary search UnicodeString*[]: compare()", ["$p1,TestUniStrBinSearch", "$p2,TestUniStrBinSearch"],
104 "binary search StringPiece[]: compareUTF8()", ["$p1,TestStringPieceBinSearchCpp", "$p2,TestStringPieceBinSearchCpp"],
105 "binary search StringPiece[]: ucol_strcollUTF8()", ["$p1,TestStringPieceBinSearchC", "$p2,TestStringPieceBinSearchC"],
106 };
107
108 my $dataFiles = {
109 "en_US",
110 [
111 "TestNames_Latin.txt"
112 ],
113
114 "de-u-co-phonebk-ks-level2",
115 [
116 "TestRandomWordsUDHR_de.txt"
117 ],
118
119 "fr-u-ks-level1-kc",
120 [
121 "TestRandomWordsUDHR_fr.txt"
122 ],
123
124 "es",
125 [
126 "TestRandomWordsUDHR_es.txt"
127 ],
128
129 "pl",
130 [
131 "TestRandomWordsUDHR_pl.txt"
132 ],
133
134 "tr",
135 [
136 "TestRandomWordsUDHR_tr.txt"
137 ],
138
139 "el",
140 [
141 "TestRandomWordsUDHR_el.txt"
142 ],
143
144 "ru",
145 [
146 "TestNames_Russian.txt"
147 ],
148
149 "ru-u-ks-level4-ka-shifted",
150 [
151 "TestRandomWordsUDHR_ru.txt"
152 ],
153
154 "ja",
155 [
156 "TestNames_Japanese.txt",
157 "TestNames_Japanese_h.txt",
158 "TestNames_Japanese_k.txt"
159 ],
160
161 "ja-u-ks-identic",
162 [
163 "TestNames_Latin.txt",
164 "TestNames_Japanese.txt"
165 ],
166
167 "ko",
168 [
169 "TestNames_Korean.txt"
170 ],
171
172 "zh_Hans",
173 [
174 "TestNames_Simplified_Chinese.txt"
175 ],
176
177 "zh_Hans-u-co-pinyin",
178 [
179 "TestNames_Latin.txt",
180 "TestNames_Simplified_Chinese.txt"
181 ],
182
183 "zh_Hant",
184 [
185 "TestNames_Chinese.txt",
186 ],
187
188 "th-u-kk-ka-shifted",
189 [
190 "TestNames_Latin.txt",
191 "TestNames_Thai.txt",
192 "TestRandomWordsUDHR_th.txt"
193 ],
194
195 "ar",
196 [
197 "TestRandomWordsUDHR_ar.txt"
198 ],
199
200 "he",
201 [
202 "TestRandomWordsUDHR_he.txt"
203 ]
204 };
205
206 runTests($options, $tests, $dataFiles);