Index: source/test/perf/DateFmtPerf/DateFmtPerf.h |
diff --git a/source/test/perf/DateFmtPerf/DateFmtPerf.h b/source/test/perf/DateFmtPerf/DateFmtPerf.h |
index 7aeb316418d87f53d9b6bed46b693615c6402772..033405316002e82b341dea6d4500ffc74fa20130 100644 |
--- a/source/test/perf/DateFmtPerf/DateFmtPerf.h |
+++ b/source/test/perf/DateFmtPerf/DateFmtPerf.h |
@@ -1,6 +1,6 @@ |
/* |
********************************************************************** |
-* Copyright (c) 2002-2011,International Business Machines |
+* Copyright (c) 2002-2014,International Business Machines |
* Corporation and others. All Rights Reserved. |
********************************************************************** |
********************************************************************** |
@@ -14,6 +14,7 @@ |
#include "unicode/unistr.h" |
#include "unicode/uperf.h" |
+#include "unicode/dtitvfmt.h" |
#include "unicode/utypes.h" |
#include "unicode/datefmt.h" |
#include "unicode/calendar.h" |
@@ -56,7 +57,7 @@ public: |
BreakItFunction(){num = -1;} |
BreakItFunction(int a, bool b){num = a; wordIteration = b;} |
- virtual void call(UErrorCode *status) |
+ virtual void call(UErrorCode * status) |
{ |
BreakIterator* boundary; |
@@ -231,6 +232,326 @@ public: |
}; |
+class DateFmtCreateFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ DateFmtCreateFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ |
+ Locale loc(locale); |
+ DateFormat *fmt; |
+ // (dates are imported from datedata.h) |
+ for(int j = 0; j < num; j++) { |
+ fmt = DateFormat::createDateTimeInstance( |
+ DateFormat::kShort, DateFormat::kFull, loc); |
+ delete fmt; |
+ } |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+}; |
+ |
+class DateFmtCopyFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ DateFmtCopyFunction() |
+ { |
+ num = -1; |
+ } |
+ |
+ DateFmtCopyFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ Locale loc(locale); |
+ UErrorCode status2 = U_ZERO_ERROR; |
+ DateFormat *fmt = DateFormat::createDateTimeInstance( |
+ DateFormat::kShort, DateFormat::kFull, loc); |
+ for(int j = 0; j < num; j++) { |
+ Format *cp = fmt->clone(); |
+ delete cp; |
+ } |
+ delete fmt; |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+ // Verify that a UErrorCode is successful; exit(1) if not |
+ void check(UErrorCode& status, const char* msg) { |
+ if (U_FAILURE(status)) { |
+ printf("ERROR: %s (%s)\n", u_errorName(status), msg); |
+ exit(1); |
+ } |
+ } |
+ |
+}; |
+ |
+class DIFCreateFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ DIFCreateFunction() |
+ { |
+ num = -1; |
+ } |
+ |
+ DIFCreateFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ UErrorCode status2 = U_ZERO_ERROR; |
+ Calendar *cal; |
+ TimeZone *zone; |
+ |
+ cal = Calendar::createInstance(status2); |
+ check(status2, "Calendar::createInstance"); |
+ zone = TimeZone::createTimeZone("GMT"); // Create a GMT zone |
+ cal->adoptTimeZone(zone); |
+ |
+ Locale loc(locale); |
+ UnicodeString skeleton("yMMMMdHms"); |
+ |
+ for(int j = 0; j < num; j++) { |
+ DateIntervalFormat* fmt(DateIntervalFormat::createInstance(skeleton, loc, status2)); |
+ delete fmt; |
+ } |
+ delete cal; |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+ // Verify that a UErrorCode is successful; exit(1) if not |
+ void check(UErrorCode& status, const char* msg) { |
+ if (U_FAILURE(status)) { |
+ printf("ERROR: %s (%s)\n", u_errorName(status), msg); |
+ exit(1); |
+ } |
+ } |
+ |
+}; |
+ |
+class TimeZoneCreateFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ TimeZoneCreateFunction() |
+ { |
+ num = -1; |
+ } |
+ |
+ TimeZoneCreateFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ Locale loc(locale); |
+ UnicodeString tzname("UTC"); |
+ for(int j = 0; j < num; j++) { |
+ TimeZone* tz(TimeZone::createTimeZone(tzname)); |
+ delete tz; |
+ } |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+ // Verify that a UErrorCode is successful; exit(1) if not |
+ void check(UErrorCode& status, const char* msg) { |
+ if (U_FAILURE(status)) { |
+ printf("ERROR: %s (%s)\n", u_errorName(status), msg); |
+ exit(1); |
+ } |
+ } |
+ |
+}; |
+ |
+class DTPatternGeneratorCreateFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ DTPatternGeneratorCreateFunction() |
+ { |
+ num = -1; |
+ } |
+ |
+ DTPatternGeneratorCreateFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ UErrorCode status2 = U_ZERO_ERROR; |
+ Locale loc(locale); |
+ |
+ for(int j = 0; j < num; j++) { |
+ DateTimePatternGenerator* gen(DateTimePatternGenerator::createInstance(loc, status2)); |
+ delete gen; |
+ } |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+ // Verify that a UErrorCode is successful; exit(1) if not |
+ void check(UErrorCode& status, const char* msg) { |
+ if (U_FAILURE(status)) { |
+ printf("ERROR: %s (%s)\n", u_errorName(status), msg); |
+ exit(1); |
+ } |
+ } |
+ |
+}; |
+ |
+class DTPatternGeneratorCopyFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ DTPatternGeneratorCopyFunction() |
+ { |
+ num = -1; |
+ } |
+ |
+ DTPatternGeneratorCopyFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ UErrorCode status2 = U_ZERO_ERROR; |
+ Locale loc(locale); |
+ DateTimePatternGenerator* gen(DateTimePatternGenerator::createInstance(loc, status2)); |
+ |
+ for(int j = 0; j < num; j++) { |
+ DateTimePatternGenerator *cl = gen->clone(); |
+ delete cl; |
+ } |
+ delete gen; |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+ // Verify that a UErrorCode is successful; exit(1) if not |
+ void check(UErrorCode& status, const char* msg) { |
+ if (U_FAILURE(status)) { |
+ printf("ERROR: %s (%s)\n", u_errorName(status), msg); |
+ exit(1); |
+ } |
+ } |
+ |
+}; |
+ |
+class DTPatternGeneratorBestValueFunction : public UPerfFunction |
+{ |
+ |
+private: |
+ int num; |
+ char locale[25]; |
+public: |
+ |
+ DTPatternGeneratorBestValueFunction() |
+ { |
+ num = -1; |
+ } |
+ |
+ DTPatternGeneratorBestValueFunction(int a, const char* loc) |
+ { |
+ num = a; |
+ strcpy(locale, loc); |
+ } |
+ |
+ virtual void call(UErrorCode* /* status */) |
+ { |
+ UErrorCode status2 = U_ZERO_ERROR; |
+ Locale loc(locale); |
+ DateTimePatternGenerator* gen(DateTimePatternGenerator::createInstance(loc, status2)); |
+ UnicodeString skeleton("yMMMMdHms"); |
+ |
+ for(int j = 0; j < num; j++) { |
+ gen->getBestPattern(skeleton, status2); |
+ } |
+ check(status2, "getBestPattern"); |
+ delete gen; |
+ } |
+ |
+ virtual long getOperationsPerIteration() |
+ { |
+ return num; |
+ } |
+ |
+ // Verify that a UErrorCode is successful; exit(1) if not |
+ void check(UErrorCode& status, const char* msg) { |
+ if (U_FAILURE(status)) { |
+ printf("ERROR: %s (%s)\n", u_errorName(status), msg); |
+ exit(1); |
+ } |
+ } |
+ |
+}; |
+ |
class NumFmtFunction : public UPerfFunction |
{ |
@@ -497,6 +818,10 @@ public: |
UPerfFunction* DateFmt250(); |
UPerfFunction* DateFmt10000(); |
UPerfFunction* DateFmt100000(); |
+ UPerfFunction* DateFmtCreate250(); |
+ UPerfFunction* DateFmtCreate10000(); |
+ UPerfFunction* DateFmtCopy250(); |
+ UPerfFunction* DateFmtCopy10000(); |
UPerfFunction* BreakItWord250(); |
UPerfFunction* BreakItWord10000(); |
UPerfFunction* BreakItChar250(); |
@@ -505,6 +830,16 @@ public: |
UPerfFunction* NumFmt100000(); |
UPerfFunction* Collation10000(); |
UPerfFunction* Collation100000(); |
+ UPerfFunction* DIFCreate250(); |
+ UPerfFunction* DIFCreate10000(); |
+ UPerfFunction* TimeZoneCreate250(); |
+ UPerfFunction* TimeZoneCreate10000(); |
+ UPerfFunction* DTPatternGeneratorCreate250(); |
+ UPerfFunction* DTPatternGeneratorCreate10000(); |
+ UPerfFunction* DTPatternGeneratorCopy250(); |
+ UPerfFunction* DTPatternGeneratorCopy10000(); |
+ UPerfFunction* DTPatternGeneratorBestValue250(); |
+ UPerfFunction* DTPatternGeneratorBestValue10000(); |
}; |
#endif // DateFmtPerf |