diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-12-03 09:05:05 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-12-03 09:05:05 +0000 |
commit | e04c6a878f5044d36eaa95d4c2318e0381a32998 (patch) | |
tree | 5b7c36578140e48c0114863004c8375ea55db21d /Build/source/libs/icu/icu-4.6/test/perf/ustrperf | |
parent | fa438554bd1a061515cd8f5f46fbe311ff08dcd6 (diff) |
icu 4.6
git-svn-id: svn://tug.org/texlive/trunk@20645 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu/icu-4.6/test/perf/ustrperf')
7 files changed, 1459 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/Makefile.in b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/Makefile.in new file mode 100644 index 00000000000..654d4a2f6ea --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/Makefile.in @@ -0,0 +1,79 @@ +## Makefile.in for ICU - test/perf/ustrperf +## Copyright (c) 2001-2008, International Business Machines Corporation and +## others. All Rights Reserved. + +## Source directory information +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ + +top_builddir = ../../.. + +include $(top_builddir)/icudefs.mk + +## Build directory information +subdir = test/perf/ustrperf + +## Extra files to remove for 'make clean' +CLEANFILES = *~ $(DEPS) + +## Target information +TARGET = stringperf + +CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw +LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M) + +OBJECTS = stringperf.o + +DEPS = $(OBJECTS:.o=.d) + +## List of phony targets +.PHONY : all all-local install install-local clean clean-local \ +distclean distclean-local dist dist-local check check-local + +## Clear suffix list +.SUFFIXES : + +## List of standard targets +all: all-local +install: install-local +clean: clean-local +distclean : distclean-local +dist: dist-local +check: all check-local + +all-local: $(TARGET) + +install-local: + +dist-local: + +clean-local: + test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) + $(RMV) $(OBJECTS) $(TARGET) + +distclean-local: clean-local + $(RMV) Makefile + +check-local: all-local + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(TARGET) : $(OBJECTS) + $(LINK.cc) -o $@ $^ $(LIBS) + $(POST_BUILD_STEP) + +invoke: + ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION) + +ifeq (,$(MAKECMDGOALS)) +-include $(DEPS) +else +ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),) +ifneq ($(patsubst %install,,$(MAKECMDGOALS)),) +-include $(DEPS) +endif +endif +endif + diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/StringPerf.pl b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/StringPerf.pl new file mode 100755 index 00000000000..0bcdaa0b4f8 --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/StringPerf.pl @@ -0,0 +1,75 @@ +#!/usr/bin/perl +# ******************************************************************** +# * COPYRIGHT: +# * Copyright (c) 2003-2008, International Business Machines Corporation and +# * others. All Rights Reserved. +# ******************************************************************** + + +#use strict; + +require "../perldriver/Common.pl"; + +use lib '../perldriver'; + +use PerfFramework; + +my $options = { + "title"=>"Unicode String performance: ICU ".$ICULatestVersion." vs. STDLib", + "headers"=>"StdLib ICU".$ICULatestVersion, + "operationIs"=>"Unicode String", + "timePerOperationIs"=>"Time per Unicode String", + "passes"=>"5", + "time"=>"2", + #"outputType"=>"HTML", + "dataDir"=>$CollationDataPath, + "outputDir"=>"../results" + }; + + +# programs +# tests will be done for all the programs. Results will be stored and connected +my $p; +if ($OnWindows) { + $p = $ICUPathLatest."/ustrperf/$WindowsPlatform/Release/stringperf.exe -l -u"; +} else { + $p = $ICUPathLatest."/ustrperf/stringperf -l -u"; +} + +my $tests = { +"Object Construction(empty string)", ["$p TestStdLibCtor" , "$p TestCtor" ], +"Object Construction(single char)", ["$p TestStdLibCtor1" , "$p TestCtor1" ], +"Object Construction(another string)", ["$p TestStdLibCtor2" , "$p TestCtor2" ], +"Object Construction(string literal)", ["$p TestStdLibCtor3" , "$p TestCtor3" ], +"String Assignment(helper)", ["$p TestStdLibAssign" , "$p TestAssign" ], +"String Assignment(string literal)", ["$p TestStdLibAssign1" , "$p TestAssign1" ], +"String Assignment(another string)", ["$p TestStdLibAssign2" , "$p TestAssign2" ], +"Get String or Character", ["$p TestStdLibGetch" , "$p TestGetch" ], +"Concatenation", ["$p TestStdLibCatenate" , "$p TestCatenate" ], +"String Scanning(char)", ["$p TestStdLibScan" , "$p TestScan" ], +"String Scanning(string)", ["$p TestStdLibScan1" , "$p TestScan1" ], +"String Scanning(char set)", ["$p TestStdLibScan2" , "$p TestScan2" ], +}; + +my $dataFiles = { + "", + [ + "TestNames_Asian.txt", + "TestNames_Chinese.txt", + "TestNames_Simplified_Chinese.txt", + "TestNames_Japanese_h.txt", + "TestNames_Japanese_k.txt", + "TestNames_Korean.txt", + "TestNames_Latin.txt", + "TestNames_SerbianSH.txt", + "TestNames_SerbianSR.txt", + "TestNames_Thai.txt", + "Testnames_Russian.txt", + "th18057.txt", + ] + }; + +runTests($options, $tests, $dataFiles); + +# The whole command line would be something like: +# stringperf.exe -p 5 -t 2 -f c:/src/data/perf/TestNames_Asian.txt -l -u TestStdLibCatenate
\ No newline at end of file diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/StringPerf_r.pl b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/StringPerf_r.pl new file mode 100644 index 00000000000..f21c366266e --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/StringPerf_r.pl @@ -0,0 +1,79 @@ +#!/usr/bin/perl +# ******************************************************************** +# * COPYRIGHT: +# * Copyright (c) 2002-2008, International Business Machines +# * Corporation and others. All Rights Reserved. +# ******************************************************************** + +#use strict; + +use lib '../perldriver'; + +require "../perldriver/Common.pl"; + +use PerfFramework; + +my $options = { + "title"=>"Unicode String performance regression: ICU (".$ICUPreviousVersion." and ".$ICULatestVersion.")", + "headers"=>"ICU".$ICUPreviousVersion." ICU".$ICULatestVersion, + "operationIs"=>"Unicode String", + "passes"=>"10", + "time"=>"5", + #"outputType"=>"HTML", + "dataDir"=>$CollationDataPath, + "outputDir"=>"../results" + }; + +# programs + +my $p1; # Previous +my $p2; # Latest + +if ($OnWindows) { + $p1 = $ICUPathPrevious."/ustrperf/$WindowsPlatform/Release/stringperf.exe -b -u"; # Previous + $p2 = $ICUPathLatest."/ustrperf/$WindowsPlatform/Release/stringperf.exe -b -u"; # Latest +} else { + $p1 = $ICUPathPrevious."/ustrperf/stringperf -b -u"; # Previous + $p2 = $ICUPathLatest."/ustrperf/stringperf -b -u"; # Latest +} + +my $dataFiles = { + "", + [ + "TestNames_Asian.txt", + "TestNames_Chinese.txt", + "TestNames_Japanese.txt", + "TestNames_Japanese_h.txt", + "TestNames_Japanese_k.txt", + "TestNames_Korean.txt", + "TestNames_Latin.txt", + "TestNames_SerbianSH.txt", + "TestNames_SerbianSR.txt", + "TestNames_Thai.txt", + "Testnames_Russian.txt", + "th18057.txt", + "thesis.txt", + "vfear11a.txt", + ] + }; + + +my $tests = { +"Object Construction(empty string)", ["$p1 TestCtor" , "$p2 TestCtor" ], +"Object Construction(single char)", ["$p1 TestCtor1" , "$p2 TestCtor1" ], +"Object Construction(another string)", ["$p1 TestCtor2" , "$p2 TestCtor2" ], +"Object Construction(string literal)", ["$p1 TestCtor3" , "$p2 TestCtor3" ], +"String Assignment(helper)", ["$p1 TestAssign" , "$p2 TestAssign" ], +"String Assignment(string literal)", ["$p1 TestAssign1" , "$p2 TestAssign1" ], +"String Assignment(another string)", ["$p1 TestAssign2" , "$p2 TestAssign2" ], +"Get String or Character", ["$p1 TestGetch" , "$p2 TestGetch" ], +"Concatenation", ["$p1 TestCatenate" , "$p2 TestCatenate" ], +"String Scanning(char)", ["$p1 TestScan" , "$p2 TestScan" ], +"String Scanning(string)", ["$p1 TestScan1" , "$p2 TestScan1" ], +"String Scanning(char set)", ["$p1 TestScan2" , "$p2 TestScan2" ], +}; + + +runTests($options, $tests, $dataFiles); + + diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.cpp b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.cpp new file mode 100644 index 00000000000..342e060aa8c --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.cpp @@ -0,0 +1,377 @@ +/******************************************************************** + * COPYRIGHT: + * Copyright (C) 2002-2006 International Business Machines Corporation + * and others. All Rights Reserved. + * + ********************************************************************/ +/***************************************************************************** +* File stringperf.cpp +* +* Modification History: +* Name Description +* Doug Wang Second version +* Doug Wang First Version +****************************************************************************** +*/ + +/** + * This program tests UnicodeString performance. + * APIs tested: UnicodeString + * ICU4C + * Windows 2000/XP, Linux + */ + +#include "stringperf.h" + + +int main(int argc, const char *argv[]) +{ + UErrorCode status = U_ZERO_ERROR; + + bCatenatePrealloc=TRUE; + + StringPerformanceTest test(argc, argv, status); + if (U_FAILURE(status)){ + return status; + } + + int loops = LOOPS; + if (bCatenatePrealloc) { + int to_alloc = loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN); + catICU = new UnicodeString(to_alloc,'a',0); + //catICU = new UnicodeString(); + + catStd = new stlstring(); + catStd -> reserve(loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN)); + //catStd -> reserve(110000000); + } else { + catICU = new UnicodeString(); + catStd = new stlstring(); + } + + if (test.run() == FALSE){ + fprintf(stderr, "FAILED: Tests could not be run please check the " + "arguments.\n"); + return -1; + } + + delete catICU; + delete catStd; + return 0; +} + +StringPerformanceTest::StringPerformanceTest(int32_t argc, const char *argv[], + UErrorCode &status) + : UPerfTest(argc, argv, status) +{ + filelines_=NULL; + StrBuffer=NULL; + StrBufferLen=0; + + int32_t len =0; + + if (status== U_ILLEGAL_ARGUMENT_ERROR){ + //fprintf(stderr,gUsageString, "stringperf"); + return; + } + if (U_FAILURE(status)){ + fprintf(stderr, "FAILED to create UPerfTest object. Error: %s\n", + u_errorName(status)); + return; + } + + + if(line_mode){ + ULine* filelines = getLines(status); + if(U_FAILURE(status)){ + fprintf(stderr, "FAILED to read lines from file and create UPerfTest object. Error: %s\n", u_errorName(status)); + return; + } + + filelines_ = new ULine[numLines]; + for (int i =0; i < numLines; i++) { + len = filelines[i].len; + filelines_[i].name = new UChar[len]; + filelines_[i].len = len; + memcpy(filelines_[i].name, filelines[i].name, len * U_SIZEOF_UCHAR); + } + + }else if(bulk_mode){ + int32_t srcLen = 0; + const UChar* src = getBuffer(srcLen,status); + if(U_FAILURE(status)){ + fprintf(stderr, "FAILED to read buffer from file and create UPerfTest object. Error: %s\n", u_errorName(status)); + return; + } + + StrBuffer = new UChar[srcLen]; + StrBufferLen = srcLen; + memcpy(StrBuffer, src, srcLen * U_SIZEOF_UCHAR); + + } +} + +StringPerformanceTest::~StringPerformanceTest() +{ + delete[] filelines_; + delete[] StrBuffer; +} + +UPerfFunction* StringPerformanceTest::runIndexedTest(int32_t index, UBool exec, + const char *&name, + char* par) +{ + switch (index) { + TESTCASE(0, TestCtor); + TESTCASE(1, TestCtor1); + TESTCASE(2, TestCtor2); + TESTCASE(3, TestCtor3); + TESTCASE(4, TestAssign); + TESTCASE(5, TestAssign1); + TESTCASE(6, TestAssign2); + TESTCASE(7, TestGetch); + TESTCASE(8, TestCatenate); + TESTCASE(9, TestScan); + TESTCASE(10, TestScan1); + TESTCASE(11, TestScan2); + + TESTCASE(12, TestStdLibCtor); + TESTCASE(13, TestStdLibCtor1); + TESTCASE(14, TestStdLibCtor2); + TESTCASE(15, TestStdLibCtor3); + TESTCASE(16, TestStdLibAssign); + TESTCASE(17, TestStdLibAssign1); + TESTCASE(18, TestStdLibAssign2); + TESTCASE(19, TestStdLibGetch); + TESTCASE(20, TestStdLibCatenate); + TESTCASE(21, TestStdLibScan); + TESTCASE(22, TestStdLibScan1); + TESTCASE(23, TestStdLibScan2); + + default: + name = ""; + return NULL; + } + return NULL; +} + +UPerfFunction* StringPerformanceTest::TestCtor() +{ + if (line_mode) { + return new StringPerfFunction(ctor, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(ctor, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestCtor1() +{ + if (line_mode) { + return new StringPerfFunction(ctor1, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(ctor1, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestCtor2() +{ + if (line_mode) { + return new StringPerfFunction(ctor2, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(ctor2, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestCtor3() +{ + if (line_mode) { + return new StringPerfFunction(ctor3, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(ctor3, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestAssign() +{ + if (line_mode) { + return new StringPerfFunction(assign, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(assign, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestAssign1() +{ + if (line_mode) { + return new StringPerfFunction(assign1, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(assign1, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestAssign2() +{ + if (line_mode) { + return new StringPerfFunction(assign2, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(assign2, StrBuffer, StrBufferLen, uselen); + } +} + + +UPerfFunction* StringPerformanceTest::TestGetch() +{ + if (line_mode) { + return new StringPerfFunction(getch, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(getch, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestCatenate() +{ + if (line_mode) { + return new StringPerfFunction(catenate, filelines_, numLines, uselen); + } else { + //return new StringPerfFunction(catenate, buffer, bufferLen, uselen); + return new StringPerfFunction(catenate, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestScan() +{ + if (line_mode) { + return new StringPerfFunction(scan, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(scan, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestScan1() +{ + if (line_mode) { + return new StringPerfFunction(scan1, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(scan1, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestScan2() +{ + if (line_mode) { + return new StringPerfFunction(scan2, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(scan2, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibCtor() +{ + if (line_mode) { + return new StringPerfFunction(StdLibCtor, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibCtor, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibCtor1() +{ + if (line_mode) { + return new StringPerfFunction(StdLibCtor1, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibCtor1, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibCtor2() +{ + if (line_mode) { + return new StringPerfFunction(StdLibCtor2, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibCtor2, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibCtor3() +{ + if (line_mode) { + return new StringPerfFunction(StdLibCtor3, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibCtor3, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibAssign() +{ + if (line_mode) { + return new StringPerfFunction(StdLibAssign, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibAssign, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibAssign1() +{ + if (line_mode) { + return new StringPerfFunction(StdLibAssign1, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibAssign1, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibAssign2() +{ + if (line_mode) { + return new StringPerfFunction(StdLibAssign2, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibAssign2, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibGetch() +{ + if (line_mode) { + return new StringPerfFunction(StdLibGetch, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibGetch, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibCatenate() +{ + if (line_mode) { + return new StringPerfFunction(StdLibCatenate, filelines_, numLines, uselen); + } else { + //return new StringPerfFunction(StdLibCatenate, buffer, bufferLen, uselen); + return new StringPerfFunction(StdLibCatenate, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibScan() +{ + if (line_mode) { + return new StringPerfFunction(StdLibScan, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibScan, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibScan1() +{ + if (line_mode) { + return new StringPerfFunction(StdLibScan1, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibScan1, StrBuffer, StrBufferLen, uselen); + } +} + +UPerfFunction* StringPerformanceTest::TestStdLibScan2() +{ + if (line_mode) { + return new StringPerfFunction(StdLibScan2, filelines_, numLines, uselen); + } else { + return new StringPerfFunction(StdLibScan2, StrBuffer, StrBufferLen, uselen); + } +} + + diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.h b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.h new file mode 100644 index 00000000000..84d6493a405 --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.h @@ -0,0 +1,549 @@ +/* +********************************************************************** +* Copyright (c) 2002-2006, International Business Machines +* Corporation and others. All Rights Reserved. +********************************************************************** +*/ +#ifndef _STRINGPERF_H +#define _STRINGPERF_H + +#include <string> + +#include "unicode/utypes.h" +#include "unicode/unistr.h" + +#include "unicode/uperf.h" + +typedef std::wstring stlstring; + +/* Define all constants for test case operations */ +#define MAXNUMLINES 40000 //Max number of lines in a test data file +#define MAXSRCLEN 20 //Max length of one line. maybe a larger number, but it need more mem +#define LOOPS 100 //Iterations +//#define LOOPS 10 +#define catenate_STRLEN 2 + +const UChar uTESTCHAR1 = 'a'; +const wchar_t wTESTCHAR1 = 'a'; +const UnicodeString uEMPTY; +const stlstring sEMPTY; +UnicodeString unistr; +stlstring stlstr; +// Simulate construction with a single-char string for basic_string +wchar_t simulate[2]={wTESTCHAR1, 0}; + +/* Constants for scan operation */ +U_STRING_DECL(scan_STRING, "Dot. 123. Some more data.", 25); +const UnicodeString uScan_STRING=UnicodeString(scan_STRING); +const stlstring sScan_STRING=stlstring(L"Dot. 123. Some more data."); + +/* global variables or constants for concatenation operation */ +U_STRING_DECL(uCatenate_STR, "!!", 2); +const stlstring sCatenate_STR=stlstring(L"!!"); +static UnicodeString* catICU; +static stlstring* catStd; +UBool bCatenatePrealloc; + +/* type defines */ +typedef struct WLine WLine; +struct WLine { + wchar_t name[100]; + int32_t len; +}; //struct to store one line of wchar_t string + +enum FnType { Fn_ICU, Fn_STD }; +typedef FnType FnType; +typedef void (*ICUStringPerfFn)(const UChar* src,int32_t srcLen, UnicodeString s0); +typedef void (*StdStringPerfFn)(const wchar_t* src,int32_t srcLen, stlstring s0); + + +class StringPerfFunction : public UPerfFunction +{ +public: + + virtual long getEventsPerIteration(){ + int loops = LOOPS; + if (catICU) { delete catICU;} + if (catStd) { delete catStd;} + + if (bCatenatePrealloc) { + + int to_alloc = loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN); + catICU = new UnicodeString(to_alloc,'a',0); + //catICU = new UnicodeString(); + + catStd = new stlstring(); + //catStd -> reserve(loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN)); + catStd -> reserve(110000000); + } else { + catICU = new UnicodeString(); + catStd = new stlstring(); + } + + return -1; + } + + virtual void call(UErrorCode* status) + { + if(line_mode_==TRUE){ + if(uselen_){ + for(int32_t i = 0; i< numLines_; i++){ + if (fnType_==Fn_ICU) { + (*fn1_)(lines_[i].name,lines_[i].len,uS0_[i]); + } else { + (*fn2_)(wlines_[i].name,wlines_[i].len,sS0_[i]); + } + } + }else{ + for(int32_t i = 0; i< numLines_; i++){ + if (fnType_==Fn_ICU) { + (*fn1_)(lines_[i].name,-1,uS0_[i]); + } else { + (*fn2_)(wlines_[i].name,-1,sS0_[i]); + } + } + } + }else{ + if(uselen_){ + if (fnType_==Fn_ICU) { + (*fn1_)(src_,srcLen_,*ubulk_); + } else { + (*fn2_)(wsrc_,wsrcLen_,*sbulk_); + } + }else{ + if (fnType_==Fn_ICU) { + (*fn1_)(src_,-1,*ubulk_); + } else { + (*fn2_)(wsrc_,-1,*sbulk_); + } + } + } + } + + virtual long getOperationsPerIteration() + { + if(line_mode_==TRUE){ + return numLines_; + }else{ + return 1; + } + } + + StringPerfFunction(ICUStringPerfFn func, ULine* srcLines, int32_t srcNumLines, UBool uselen) + { + + fn1_ = func; + lines_=srcLines; + wlines_=NULL; + numLines_=srcNumLines; + uselen_=uselen; + line_mode_=TRUE; + src_ = NULL; + srcLen_ = 0; + wsrc_ = NULL; + wsrcLen_ = 0; + fnType_ = Fn_ICU; + + uS0_=new UnicodeString[numLines_]; + for(int32_t i=0; i<numLines_; i++) { + uS0_[i]=UnicodeString(lines_[i].name, lines_[i].len); + } + sS0_=NULL; + ubulk_=NULL; + sbulk_=NULL; + } + + StringPerfFunction(StdStringPerfFn func, ULine* srcLines, int32_t srcNumLines, UBool uselen) + { + + fn2_ = func; + lines_=srcLines; + wlines_=NULL; + numLines_=srcNumLines; + uselen_=uselen; + line_mode_=TRUE; + src_ = NULL; + srcLen_ = 0; + wsrc_ = NULL; + wsrcLen_ = 0; + fnType_ = Fn_STD; + + uS0_=NULL; + ubulk_=NULL; + sbulk_=NULL; + + //fillin wlines_[], sS0_[] + prepareLinesForStd(); + } + + StringPerfFunction(ICUStringPerfFn func, UChar* source, int32_t sourceLen, UBool uselen) + { + + fn1_ = func; + lines_=NULL; + wlines_=NULL; + numLines_=0; + uselen_=uselen; + line_mode_=FALSE; + src_ = new UChar[sourceLen]; + memcpy(src_, source, sourceLen * U_SIZEOF_UCHAR); + srcLen_ = sourceLen; + wsrc_ = NULL; + wsrcLen_ = 0; + fnType_ = Fn_ICU; + + uS0_=NULL; + sS0_=NULL; + ubulk_=new UnicodeString(src_,srcLen_); + sbulk_=NULL; + } + + StringPerfFunction(StdStringPerfFn func, UChar* source, int32_t sourceLen, UBool uselen) + { + + fn2_ = func; + lines_=NULL; + wlines_=NULL; + numLines_=0; + uselen_=uselen; + line_mode_=FALSE; + src_ = new UChar[sourceLen]; + memcpy(src_, source, sourceLen * U_SIZEOF_UCHAR); + srcLen_ = sourceLen; + fnType_ = Fn_STD; + + uS0_=NULL; + sS0_=NULL; + ubulk_=NULL; + + //fillin wsrc_, sbulk_ + prepareBulkForStd(); + + } + + ~StringPerfFunction() + { + //free(src_); + free(wsrc_); + delete[] src_; + delete ubulk_; + delete sbulk_; + delete[] uS0_; + delete[] sS0_; + delete[] wlines_; + } + +private: + void prepareLinesForStd(void) + { + UErrorCode err=U_ZERO_ERROR; + + wlines_=new WLine[numLines_]; + wchar_t ws[100]; + int32_t wcap = sizeof(ws) / sizeof(*ws); + int32_t wl; + wchar_t* wcs; + + sS0_=new stlstring[numLines_]; + for(int32_t i=0; i<numLines_; i++) { + if(uselen_) { + wcs = u_strToWCS(ws, wcap, &wl, lines_[i].name, lines_[i].len, &err); + memcpy(wlines_[i].name, wcs, wl * sizeof(wchar_t)); + wlines_[i].len = wl; + sS0_[i]=stlstring(wlines_[i].name, wlines_[i].len); + } else { + wcs = u_strToWCS(ws, wcap, &wl, lines_[i].name, lines_[i].len-1, &err); + memcpy(wlines_[i].name, wcs, wl*sizeof(wchar_t)); + wlines_[i].len = wl; + sS0_[i]=stlstring(wlines_[i].name, wlines_[i].len+1); + } + + if (U_FAILURE(err)) { + return; + } + } + + } + + void prepareBulkForStd(void) + { + UErrorCode err=U_ZERO_ERROR; + + const UChar* uSrc = src_; + int32_t uSrcLen = srcLen_; + wchar_t* wDest = NULL; + int32_t wDestLen = 0; + int32_t reqLen= 0 ; + + if(uselen_) { + /* pre-flight*/ + u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen,&err); + + if(err == U_BUFFER_OVERFLOW_ERROR){ + err=U_ZERO_ERROR; + wDest =(wchar_t*) malloc(sizeof(wchar_t) * (reqLen)); + wDestLen = reqLen; + u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen,&err); + } + + if (U_SUCCESS(err)) { + wsrc_ = wDest; + wsrcLen_ = wDestLen; + sbulk_=new stlstring(wsrc_,wsrcLen_); + } + + } else { + /* pre-flight*/ + u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen-1,&err); + + if(err == U_BUFFER_OVERFLOW_ERROR){ + err=U_ZERO_ERROR; + wDest =(wchar_t*) malloc(sizeof(wchar_t) * (reqLen+1)); + wDestLen = reqLen+1; + u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen-1,&err); + } + + if (U_SUCCESS(err)) { + wsrc_ = wDest; + wsrcLen_ = wDestLen; + sbulk_=new stlstring(wsrc_); + } + } + + //free(wDest); + } + + +private: + ICUStringPerfFn fn1_; + StdStringPerfFn fn2_; + + ULine* lines_; + WLine* wlines_; + int32_t numLines_; + + UBool uselen_; + UChar* src_; + int32_t srcLen_; + wchar_t* wsrc_; + int32_t wsrcLen_; + UBool line_mode_; + + //added for preparing testing data + UnicodeString* uS0_; + stlstring* sS0_; + UnicodeString* ubulk_; + stlstring* sbulk_; + FnType fnType_; +}; + + +class StringPerformanceTest : public UPerfTest +{ +public: + StringPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status); + ~StringPerformanceTest(); + virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec, + const char *&name, + char *par = NULL); + UPerfFunction* TestCtor(); + UPerfFunction* TestCtor1(); + UPerfFunction* TestCtor2(); + UPerfFunction* TestCtor3(); + UPerfFunction* TestAssign(); + UPerfFunction* TestAssign1(); + UPerfFunction* TestAssign2(); + UPerfFunction* TestGetch(); + UPerfFunction* TestCatenate(); + UPerfFunction* TestScan(); + UPerfFunction* TestScan1(); + UPerfFunction* TestScan2(); + + UPerfFunction* TestStdLibCtor(); + UPerfFunction* TestStdLibCtor1(); + UPerfFunction* TestStdLibCtor2(); + UPerfFunction* TestStdLibCtor3(); + UPerfFunction* TestStdLibAssign(); + UPerfFunction* TestStdLibAssign1(); + UPerfFunction* TestStdLibAssign2(); + UPerfFunction* TestStdLibGetch(); + UPerfFunction* TestStdLibCatenate(); + UPerfFunction* TestStdLibScan(); + UPerfFunction* TestStdLibScan1(); + UPerfFunction* TestStdLibScan2(); + +private: + long COUNT_; + ULine* filelines_; + UChar* StrBuffer; + int32_t StrBufferLen; + +}; + + +inline void ctor(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UnicodeString a; +} + +inline void ctor1(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UnicodeString b(uTESTCHAR1); +} + +inline void ctor2(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UnicodeString c(uEMPTY); +} + +inline void ctor3(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UnicodeString d(src,srcLen); +} + +inline UnicodeString icu_assign_helper(const UChar* src,int32_t srcLen) +{ + if (srcLen==-1) { return src;} + else { return UnicodeString(src, srcLen);} +} + +inline void assign(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + unistr = icu_assign_helper(src,srcLen); +} + +inline void assign1(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + unistr.setTo(src, srcLen); +} + +inline void assign2(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + unistr = s0; +} + +inline void getch(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + s0.charAt(0); +} + + +inline void catenate(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UTimer mystart, mystop; + utimer_getTime(&mystart); + + *catICU += s0; + + utimer_getTime(&mystop); + double mytime = utimer_getDeltaSeconds(&mystart,&mystop); + printf("\nmytime=%f \n", mytime); + + *catICU += uCatenate_STR; +} + +volatile int scan_idx; +U_STRING_DECL(SCAN1, "123", 3); + +inline void scan(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UChar c='.'; + scan_idx = uScan_STRING.indexOf(c); +} + +inline void scan1(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + scan_idx = uScan_STRING.indexOf(SCAN1,3); +} + +inline void scan2(const UChar* src,int32_t srcLen, UnicodeString s0) +{ + UChar c1='s'; + UChar c2='m'; + scan_idx = uScan_STRING.indexOf(c1); + scan_idx = uScan_STRING.indexOf(c2); +} + + +inline void StdLibCtor(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + stlstring a; +} + +inline void StdLibCtor1(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + stlstring b(simulate); +} + +inline void StdLibCtor2(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + stlstring c(sEMPTY); +} + +inline void StdLibCtor3(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + if (srcLen==-1) { + stlstring d(src); + }else { + stlstring d(src, srcLen); + } +} + +inline stlstring stl_assign_helper(const wchar_t* src,int32_t srcLen) +{ + if (srcLen==-1) { return src;} + else { return stlstring(src, srcLen);} +} + +inline void StdLibAssign(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + stlstr = stl_assign_helper(src,srcLen); +} + +inline void StdLibAssign1(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + if (srcLen==-1) { stlstr=src;} + else { stlstr.assign(src, srcLen);} +} + +inline void StdLibAssign2(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + stlstr=s0; +} + +inline void StdLibGetch(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + s0.at(0); +} + +inline void StdLibCatenate(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + UTimer mystart, mystop; + utimer_getTime(&mystart); + + *catStd += s0; + *catStd += sCatenate_STR; + + utimer_getTime(&mystop); + double mytime = utimer_getDeltaSeconds(&mystart,&mystop); + printf("\nmytime=%f \n", mytime); + +} + +inline void StdLibScan(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + scan_idx = (int) sScan_STRING.find('.'); +} + +inline void StdLibScan1(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + scan_idx = (int) sScan_STRING.find(L"123"); +} + +inline void StdLibScan2(const wchar_t* src,int32_t srcLen, stlstring s0) +{ + scan_idx = (int) sScan_STRING.find_first_of(L"sm"); +} + +#endif // STRINGPERF_H + diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.vcxproj b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.vcxproj new file mode 100644 index 00000000000..96757f4c674 --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.vcxproj @@ -0,0 +1,273 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{523710EA-349D-45BF-8B39-289CC86E7D91}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\x86\Release\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\x86\Release\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\x64\Release\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\x64\Release\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\x86\Debug\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\x86\Debug\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\x64\Debug\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\x64\Debug\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>.\x86\Release/stringperf.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <PrecompiledHeaderOutputFile>.\x86\Release/stringperf.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\x86\Release/</AssemblerListingLocation>
+ <ObjectFileName>.\x86\Release/</ObjectFileName>
+ <ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>icuuc.lib;icutu.lib;icutest.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\x86\Release/stringperf.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>..\..\..\..\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ProgramDatabaseFile>.\x86\Release/stringperf.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>.\x64\Release/stringperf.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN64;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <PrecompiledHeaderOutputFile>.\x64\Release/stringperf.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\x64\Release/</AssemblerListingLocation>
+ <ObjectFileName>.\x64\Release/</ObjectFileName>
+ <ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>icuuc.lib;icutu.lib;icutest.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\x64\Release/stringperf.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>..\..\..\..\lib64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ProgramDatabaseFile>.\x64\Release/stringperf.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>.\x86\Debug/stringperf.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <PrecompiledHeaderOutputFile>.\x86\Debug/stringperf.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\x86\Debug/</AssemblerListingLocation>
+ <ObjectFileName>.\x86\Debug/</ObjectFileName>
+ <ProgramDataBaseFileName>.\x86\Debug/</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>icuucd.lib;icutud.lib;icutestd.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\x86\Debug/stringperf.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>..\..\..\..\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>.\x86\Debug/stringperf.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ <TypeLibraryName>.\x64\Debug/stringperf.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN64;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <PrecompiledHeaderOutputFile>.\x64\Debug/stringperf.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>.\x64\Debug/</AssemblerListingLocation>
+ <ObjectFileName>.\x64\Debug/</ObjectFileName>
+ <ProgramDataBaseFileName>.\x64\Debug/</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>Default</CompileAs>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0417</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>icuucd.lib;icutud.lib;icutestd.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>.\x64\Debug/stringperf.exe</OutputFile>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalLibraryDirectories>..\..\..\..\lib64\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>.\x64\Debug/stringperf.pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="stringperf.cpp">
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks>
+ <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</BrowseInformation>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
+ <BrowseInformation Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BrowseInformation>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="stringperf.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> diff --git a/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.vcxproj.filters b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.vcxproj.filters new file mode 100644 index 00000000000..07a54a59a2c --- /dev/null +++ b/Build/source/libs/icu/icu-4.6/test/perf/ustrperf/stringperf.vcxproj.filters @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{6863b0b4-8093-41e6-be7d-d901824e9418}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{065cc8c8-6c01-42a5-be22-af15d0a8540a}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{ab45cfe4-f0aa-4529-8a51-054efcf33edf}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="stringperf.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="stringperf.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project>
\ No newline at end of file |