Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(250)

Unified Diff: icu46/source/test/perf/ustrperf/stringperf.cpp

Issue 5516007: Check in the pristine copy of ICU 4.6... (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « icu46/source/test/perf/ustrperf/stringperf.h ('k') | icu46/source/test/perf/ustrperf/stringperf.vcxproj » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: icu46/source/test/perf/ustrperf/stringperf.cpp
===================================================================
--- icu46/source/test/perf/ustrperf/stringperf.cpp (revision 0)
+++ icu46/source/test/perf/ustrperf/stringperf.cpp (revision 0)
@@ -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);
+ }
+}
+
+
Property changes on: icu46/source/test/perf/ustrperf/stringperf.cpp
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « icu46/source/test/perf/ustrperf/stringperf.h ('k') | icu46/source/test/perf/ustrperf/stringperf.vcxproj » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698