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) 2003-2013, International Business Machines Corporation and 9 # * others. All Rights Reserved. 10 # ******************************************************************** 11 12 13 #use strict; 14 15 require "../perldriver/Common.pl"; 16 17 use lib '../perldriver'; 18 19 use PerfFramework; 20 21 my $options = { 22 "title"=>"Unicode String performance: ICU ".$ICULatestVersion." vs. STDLib", 23 "headers"=>"StdLib ICU".$ICULatestVersion, 24 "operationIs"=>"Unicode String", 25 "timePerOperationIs"=>"Time per Unicode String", 26 "passes"=>"5", 27 "time"=>"2", 28 #"outputType"=>"HTML", 29 "dataDir"=>$CollationDataPath, 30 "outputDir"=>"../results" 31 }; 32 33 34 # programs 35 # tests will be done for all the programs. Results will be stored and connected 36 my $p; 37 if ($OnWindows) { 38 $p = "cd ".$ICULatest."/bin && ".$ICUPathLatest."/ustrperf/$WindowsPlatform/Release/stringperf.exe -l -u"; 39 } else { 40 $p = "LD_LIBRARY_PATH=".$ICULatest."/source/lib:".$ICULatest."/source/tools/ctestfw ".$ICUPathLatest."/ustrperf/stringperf -l -u"; 41 } 42 43 my $tests = { 44 "Object Construction(empty string)", ["$p,TestStdLibCtor" , "$p,TestCtor" ], 45 "Object Construction(single char)", ["$p,TestStdLibCtor1" , "$p,TestCtor1" ], 46 "Object Construction(another string)", ["$p,TestStdLibCtor2" , "$p,TestCtor2" ], 47 "Object Construction(string literal)", ["$p,TestStdLibCtor3" , "$p,TestCtor3" ], 48 "String Assignment(helper)", ["$p,TestStdLibAssign" , "$p,TestAssign" ], 49 "String Assignment(string literal)", ["$p,TestStdLibAssign1" , "$p,TestAssign1" ], 50 "String Assignment(another string)", ["$p,TestStdLibAssign2" , "$p,TestAssign2" ], 51 "Get String or Character", ["$p,TestStdLibGetch" , "$p,TestGetch" ], 52 "Concatenation", ["$p,TestStdLibCatenate" , "$p,TestCatenate" ], 53 "String Scanning(char)", ["$p,TestStdLibScan" , "$p,TestScan" ], 54 "String Scanning(string)", ["$p,TestStdLibScan1" , "$p,TestScan1" ], 55 "String Scanning(char set)", ["$p,TestStdLibScan2" , "$p,TestScan2" ], 56 }; 57 58 my $dataFiles = { 59 "", 60 [ 61 "TestNames_Asian.txt", 62 "TestNames_Chinese.txt", 63 "TestNames_Simplified_Chinese.txt", 64 "TestNames_Japanese_h.txt", 65 "TestNames_Japanese_k.txt", 66 "TestNames_Korean.txt", 67 "TestNames_Latin.txt", 68 "TestNames_SerbianSH.txt", 69 "TestNames_SerbianSR.txt", 70 "TestNames_Thai.txt", 71 "Testnames_Russian.txt", 72 "th18057.txt", 73 ] 74 }; 75 76 runTests($options, $tests, $dataFiles); 77 78 # The whole command line would be something like: 79 # stringperf.exe -p 5 -t 2 -f c:/src/data/perf/TestNames_Asian.txt -l -u TestStdLibCatenate 80