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