Revision: 24801
Author: [email protected]
Date: Wed Oct 22 11:08:42 2014 UTC
Log: Perf tests for fromCodePoint and codePointAt.
[email protected]
Review URL: https://codereview.chromium.org/670463005
https://code.google.com/p/v8/source/detail?r=24801
Modified:
/branches/bleeding_edge/test/js-perf-test/Strings/harmony-string.js
=======================================
--- /branches/bleeding_edge/test/js-perf-test/Strings/harmony-string.js Tue
Oct 21 11:05:32 2014 UTC
+++ /branches/bleeding_edge/test/js-perf-test/Strings/harmony-string.js Wed
Oct 22 11:08:42 2014 UTC
@@ -4,13 +4,17 @@
new BenchmarkSuite('StringFunctions', [1000], [
new Benchmark('StringRepeat', false, false, 0,
- StringRepeat, StringRepeatSetup, StringRepeatTearDown),
+ Repeat, RepeatSetup, RepeatTearDown),
new Benchmark('StringStartsWith', false, false, 0,
- StringStartsWith, StringWithSetup, StringWithTearDown),
+ StartsWith, WithSetup, WithTearDown),
new Benchmark('StringEndsWith', false, false, 0,
- StringEndsWith, StringWithSetup, StringWithTearDown),
+ EndsWith, WithSetup, WithTearDown),
new Benchmark('StringContains', false, false, 0,
- StringContains, StringContainsSetup, StringWithTearDown),
+ Contains, ContainsSetup, WithTearDown),
+ new Benchmark('StringFromCodePoint', false, false, 0,
+ FromCodePoint, FromCodePointSetup, FromCodePointTearDown),
+ new Benchmark('StringCodePointAt', false, false, 0,
+ CodePointAt, CodePointAtSetup, CodePointAtTearDown),
]);
@@ -18,15 +22,15 @@
var stringRepeatSource = "abc";
-function StringRepeatSetup() {
+function RepeatSetup() {
result = undefined;
}
-function StringRepeat() {
+function Repeat() {
result = stringRepeatSource.repeat(500);
}
-function StringRepeatTearDown() {
+function RepeatTearDown() {
var expected = "";
for(var i = 0; i < 1000; i++) {
expected += stringRepeatSource;
@@ -38,29 +42,70 @@
var str;
var substr;
-function StringWithSetup() {
+function WithSetup() {
str = "abc".repeat(500);
substr = "abc".repeat(200);
result = undefined;
}
-function StringWithTearDown() {
+function WithTearDown() {
return !!result;
}
-function StringStartsWith() {
+function StartsWith() {
result = str.startsWith(substr);
}
-function StringEndsWith() {
+function EndsWith() {
result = str.endsWith(substr);
}
-function StringContainsSetup() {
+function ContainsSetup() {
str = "def".repeat(100) + "abc".repeat(100) + "qqq".repeat(100);
substr = "abc".repeat(100);
}
-function StringContains() {
+function Contains() {
result = str.contains(substr);
}
+
+var MAX_CODE_POINT = 0xFFFFF;
+
+function FromCodePointSetup() {
+ result = new Array(MAX_CODE_POINT + 1);
+}
+
+function FromCodePoint() {
+ for (var i = 0; i <= MAX_CODE_POINT; i++) {
+ result[i] = String.fromCodePoint(i);
+ }
+}
+
+function FromCodePointTearDown() {
+ for (var i = 0; i <= MAX_CODE_POINT; i++) {
+ if (i !== result[i].codePointAt(0)) return false;
+ }
+ return true;
+}
+
+
+var allCodePoints;
+
+function CodePointAtSetup() {
+ allCodePoints = new Array(MAX_CODE_POINT + 1);
+ for (var i = 0; i <= MAX_CODE_POINT; i++) {
+ allCodePoints = String.fromCodePoint(i);
+ }
+ result = undefined;
+}
+
+function CodePointAt() {
+ result = 0;
+ for (var i = 0; i <= MAX_CODE_POINT; i++) {
+ result += allCodePoints.codePointAt(i);
+ }
+}
+
+function CodePointAtTearDown() {
+ return result === MAX_CODE_POINT * (MAX_CODE_POINT + 1) / 2;
+}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.