Created
May 31, 2024 07:01
-
-
Save jantimon/401795403064107315c02372be35ed39 to your computer and use it in GitHub Desktop.
test cases for browser performance tests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // tested on: https://www.youtube.com/results?search_query=chrome+performance | |
| const styleElement = document.createElement("style"); | |
| styleElement.innerHTML = ` | |
| @property --unused-property-no-inherit { inherits: false } | |
| *, *:before, *:after { box-sizing: inherit } | |
| .opacity-30 { | |
| opacity: 0.3; | |
| } | |
| ` | |
| document.head.appendChild(styleElement); | |
| const styleSheet = styleElement.sheet; | |
| setTimeout(() => { | |
| performance.mark("add non-existing class to <html>"); | |
| console.log("add non-existing class to <html>"); | |
| document.querySelector("html").classList.add("unused-class") | |
| }, 1000); | |
| setTimeout(() => { | |
| performance.mark("add class with opacity 0.3 to <html>"); | |
| console.log("add class with opacity 0.3 to <html>"); | |
| document.querySelector("html").classList.add("opacity-30") | |
| }, 2000); | |
| setTimeout(() => { | |
| performance.mark("set <html> to opacity 0.4"); | |
| console.log("add to <html> opacity: 0.4"); | |
| styleSheet.insertRule("html { opacity: 0.4 }", styleSheet.cssRules.length); | |
| }, 3000); | |
| setTimeout(() => { | |
| performance.mark("set <html> to opacity 0.5 with @media screen"); | |
| styleSheet.insertRule("@media screen { html { opacity: 0.5 } }", styleSheet.cssRules.length); | |
| }, 4000); | |
| setTimeout(() => { | |
| performance.mark("set <html> to --unused-property: 999"); | |
| console.log("set <html> to --unused-property: 999"); | |
| styleSheet.insertRule("html { --unused-property: 999 }", styleSheet.cssRules.length); | |
| }, 5000); | |
| setTimeout(() => { | |
| performance.mark("update <html> --unused-property to 111"); | |
| console.log("update <html> --unused-property to 111"); | |
| styleSheet.insertRule("html { --unused-property: 111 }", styleSheet.cssRules.length); | |
| }, 6000); | |
| setTimeout(() => { | |
| performance.mark("set <html> to --unused-property-no-inherit: 999"); | |
| console.log("set <html> to -unused-property-no-inherit: 999"); | |
| styleSheet.insertRule("html { --unused-property-no-inherit: 999 }", styleSheet.cssRules.length); | |
| }, 7000); |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
classList.add("unused-class")460 µs22 µsclassList.add("opacity-30")410 µs31500 µsinsertRule("html { opacity: 0.4 }")3340 µs499 µsinsertRule("@media screen { html { opacity: 0.5 } }")19860 µs277 µsinsertRule("html { --unused-property: 999 }")23640 µs13100 µsinsertRule("html { --unused-property: 111 }")19810 µs23100 µsinsertRule("html { --unused-property-no-inherit: 999 }")19660 µs12900 µs