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

Unified Diff: third_party/WebKit/PerformanceTests/Canvas/getImageDataColorManaged.html

Issue 2853333002: Add performance test for ImageData.dataUnion (Closed)
Patch Set: Rebaseline Created 3 years, 8 months 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 | « no previous file | tools/perf/benchmarks/blink_perf.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/PerformanceTests/Canvas/getImageDataColorManaged.html
diff --git a/third_party/WebKit/PerformanceTests/Canvas/getImageDataColorManaged.html b/third_party/WebKit/PerformanceTests/Canvas/getImageDataColorManaged.html
new file mode 100644
index 0000000000000000000000000000000000000000..dd222db45a09a6d185bde51dd105d787df654aaf
--- /dev/null
+++ b/third_party/WebKit/PerformanceTests/Canvas/getImageDataColorManaged.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html>
+<body>
+<script src="../resources/runner.js"></script>
+<script>
+
+var canvas = document.createElement("canvas");
+var ctx = canvas.getContext("2d");
+
+var dataSize = 4000000;
+var dataU8 = new Uint8ClampedArray(dataSize);
+var dataU16 = new Uint16Array(dataSize);
+var dataF32 = new Float32Array(dataSize);
+
+var imageData;
+var imageDataU8;
+var imageDataU16;
+var imageDataF32;
+
+var accessCount = 1000000;
+var accessLocations = new Uint32Array(accessCount);
+
+function rand(range) {
+ return Math.floor(Math.random() * range);
+}
+
+function fillArrays() {
+ for (i = 0; i < dataSize; i++) {
+ dataU8[i] = rand(256);
+ dataU16[i] = rand(65536);
+ dataF32[i] = rand(1);
+ }
+ for (i = 0; i < accessCount; i++)
+ accessLocations[i] = rand(dataSize);
+}
+
+
+function readArray(array, accessLocations, arrayName) {
+ var sum = 0;
+ for (i = 0; i < accessLocations.length; i++)
+ sum = sum + array[accessLocations[i]];
+ return sum;
+}
+
+function writeArray(array, accessLocations, arrayName) {
+ for (i = 0; i < accessLocations.length; i++)
+ array[accessLocations[i]] = 0;
+}
+
+function ImageData_data_AccessTime() {
+ imageDataU8 = ctx.createImageData(dataU8, 1000, 1000, {colorSpace: "srgb"});
+ readArray(imageData.data, accessLocations);
+ writeArray(imageData.data, accessLocations);
+}
+
+function ImageData_dataUnionU8_AccessTime() {
+ imageDataU8 = ctx.createImageData(dataU8, 1000, 1000, {colorSpace: "srgb", pixelFormat: "uint8"});
+ readArray(imageDataU8.dataUnion, accessLocations);
+ writeArray(imageDataU8.dataUnion, accessLocations);
+
+}
+
+function ImageData_dataUnionU16_AccessTime() {
+ imageDataU16 = ctx.createImageData(dataU16, 1000, 1000, {colorSpace: "srgb", pixelFormat: "uint16"});
+ readArray(imageDataU16.dataUnion, accessLocations);
+ writeArray(imageDataU16.dataUnion, accessLocations);
+}
+
+function ImageData_dataUnionF32_AccessTime() {
+ imageDataF32 = ctx.createImageData(dataF32, 1000, 1000, {colorSpace: "srgb", pixelFormat: "float32"});
+ readArray(imageDataF32.dataUnion, accessLocations, "imageDataF32.dataUnion");
+ writeArray(imageDataF32.dataUnion, accessLocations, "imageDataF32.dataUnion");
+}
+
+
+PerfTestRunner.measureRunsPerSecond({run: ImageData_data_AccessTime, description: "This bench test checks the speed of reading and writing 250K pixels (equivalent) to ImageData.data."});
+
+PerfTestRunner.measureRunsPerSecond({run: ImageData_dataUnionU8_AccessTime, description: "This bench test checks the speed of reading and writing 250K pixels (equivalent) to ImageData.dataUnion of type Uint8ClampedArray."});
+
+PerfTestRunner.measureRunsPerSecond({run: ImageData_dataUnionU16_AccessTime, description: "This bench test checks the speed of reading and writing 250K pixels (equivalent) to ImageData.dataUnion of type Uin16Array."});
+
+PerfTestRunner.measureRunsPerSecond({run: ImageData_dataUnionF32_AccessTime, description: "This bench test checks the speed of reading and writing 250K pixels (equivalent) to ImageData.dataUnion of type Float32Array."});
+</script>
+</body>
+</html>
+
+
+test(() => {
+ runTest();
+}, "Test ImageData.dataUnion access time");
+</script>
+</body>
« no previous file with comments | « no previous file | tools/perf/benchmarks/blink_perf.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698