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

Unified Diff: third_party/WebKit/PerformanceTests/Paint/paint-offset-changes.html

Issue 2488913002: Add lifecycle update microbenchmarks (Closed)
Patch Set: Created 4 years, 1 month 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
Index: third_party/WebKit/PerformanceTests/Paint/paint-offset-changes.html
diff --git a/third_party/WebKit/PerformanceTests/Paint/paint-offset-changes.html b/third_party/WebKit/PerformanceTests/Paint/paint-offset-changes.html
new file mode 100644
index 0000000000000000000000000000000000000000..8de72b085b18db4e9d402d044379d466ef2a0398
--- /dev/null
+++ b/third_party/WebKit/PerformanceTests/Paint/paint-offset-changes.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<body>
+<script src="../resources/runner.js"></script>
+<style>
+ .column {
+ width: 180px;
+ height: 310px;
+ border: 1px solid black;
+ font-size: 1px;
+ }
+ .row {
+ width: 150px;
+ border: 1px solid cornflowerblue;
+ }
+ .row > span {
+ border: 1px solid rebeccapurple;
+ }
+</style>
+<script>
+// This test measures the lifecycle update performance of changing paint offset.
+
+// Create a column with 100 rows of divs and 50 spans on each row.
+function createColumn(parent) {
+ var rowsPerColumn = 100;
+ var spansPerRow = 50;
+ var columnDiv = document.createElement('div');
+ parent.appendChild(columnDiv);
+ columnDiv.setAttribute('class', 'column');
+ for (var row = 0; row < rowsPerColumn; row++) {
+ var rowDiv = document.createElement('div');
+ rowDiv.setAttribute('class', 'row');
+ columnDiv.appendChild(rowDiv);
+ for (var span = 0; span < spansPerRow; span++) {
+ var spanElement = document.createElement('span');
+ rowDiv.appendChild(spanElement);
+ }
+ }
+ return columnDiv;
+}
+
+var rowMarginsToChange = createColumn(document.body).querySelectorAll('.row');
+var changeRowMargins = function(runCount) {
+ for (var index = 0; index < rowMarginsToChange.length; index++)
+ rowMarginsToChange[index].style.marginLeft = (runCount % 10) + 'px';
+}
+
+var spanMarginsToChange = createColumn(document.body).querySelectorAll('.row > span');
+var changeRowSpanMargins = function(runCount) {
+ for (var index = 0; index < spanMarginsToChange.length; index += 8)
+ spanMarginsToChange[index].style.marginLeft = ((runCount + index) % 3) + 'px';
+}
+
+var firstRowHeightToChange = createColumn(document.body).querySelector('.row');
+var changeFirstRowHeight = function(rowCount) {
+ firstRowHeightToChange.style.height = (5 + runCount % 5) + 'px';
+}
+
+var runCount = 0;
+PerfTestRunner.measureFrameTime({
+ run: function() {
+ runCount++;
+ changeRowMargins(runCount);
+ changeRowSpanMargins(runCount);
+ changeFirstRowHeight(runCount);
+ },
+ warmUpCount: 5,
+});
+</script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698