Skip to content

Commit 8e4ff77

Browse files
committed
feat(reactivity): benchmark reactivity and watchers
0 parents  commit 8e4ff77

File tree

10 files changed

+13870
-0
lines changed

10 files changed

+13870
-0
lines changed

.gitignore

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
# We don't need to share config
2+
.idea
3+
4+
# Created by https://www.gitignore.io/api/node,intellij
5+
# Edit at https://www.gitignore.io/?templates=node,intellij
6+
7+
### Intellij ###
8+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
9+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
10+
11+
# User-specific stuff
12+
.idea/**/workspace.xml
13+
.idea/**/tasks.xml
14+
.idea/**/usage.statistics.xml
15+
.idea/**/dictionaries
16+
.idea/**/shelf
17+
18+
# Generated files
19+
.idea/**/contentModel.xml
20+
21+
# Sensitive or high-churn files
22+
.idea/**/dataSources/
23+
.idea/**/dataSources.ids
24+
.idea/**/dataSources.local.xml
25+
.idea/**/sqlDataSources.xml
26+
.idea/**/dynamic.xml
27+
.idea/**/uiDesigner.xml
28+
.idea/**/dbnavigator.xml
29+
30+
# Gradle
31+
.idea/**/gradle.xml
32+
.idea/**/libraries
33+
34+
# Gradle and Maven with auto-import
35+
# When using Gradle or Maven with auto-import, you should exclude module files,
36+
# since they will be recreated, and may cause churn. Uncomment if using
37+
# auto-import.
38+
.idea/modules.xml
39+
.idea/*.iml
40+
.idea/modules
41+
*.iml
42+
*.ipr
43+
44+
# CMake
45+
cmake-build-*/
46+
47+
# Mongo Explorer plugin
48+
.idea/**/mongoSettings.xml
49+
50+
# File-based project format
51+
*.iws
52+
53+
# IntelliJ
54+
out/
55+
56+
# mpeltonen/sbt-idea plugin
57+
.idea_modules/
58+
59+
# JIRA plugin
60+
atlassian-ide-plugin.xml
61+
62+
# Cursive Clojure plugin
63+
.idea/replstate.xml
64+
65+
# Crashlytics plugin (for Android Studio and IntelliJ)
66+
com_crashlytics_export_strings.xml
67+
crashlytics.properties
68+
crashlytics-build.properties
69+
fabric.properties
70+
71+
# Editor-based Rest Client
72+
.idea/httpRequests
73+
74+
# Android studio 3.1+ serialized cache file
75+
.idea/caches/build_file_checksums.ser
76+
77+
### Intellij Patch ###
78+
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
79+
80+
# *.iml
81+
# modules.xml
82+
# .idea/misc.xml
83+
# *.ipr
84+
85+
# Sonarlint plugin
86+
.idea/**/sonarlint/
87+
88+
# SonarQube Plugin
89+
.idea/**/sonarIssues.xml
90+
91+
# Markdown Navigator plugin
92+
.idea/**/markdown-navigator.xml
93+
.idea/**/markdown-navigator/
94+
95+
### Node ###
96+
# Logs
97+
logs
98+
*.log
99+
npm-debug.log*
100+
yarn-debug.log*
101+
yarn-error.log*
102+
lerna-debug.log*
103+
104+
# Diagnostic reports (https://nodejs.org/api/report.html)
105+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
106+
107+
# Runtime data
108+
pids
109+
*.pid
110+
*.seed
111+
*.pid.lock
112+
113+
# Directory for instrumented libs generated by jscoverage/JSCover
114+
lib-cov
115+
116+
# Coverage directory used by tools like istanbul
117+
coverage
118+
*.lcov
119+
120+
# nyc test coverage
121+
.nyc_output
122+
123+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
124+
.grunt
125+
126+
# Bower dependency directory (https://bower.io/)
127+
bower_components
128+
129+
# node-waf configuration
130+
.lock-wscript
131+
132+
# Compiled binary addons (https://nodejs.org/api/addons.html)
133+
build/Release
134+
135+
# Dependency directories
136+
node_modules/
137+
jspm_packages/
138+
139+
# TypeScript v1 declaration files
140+
typings/
141+
142+
# TypeScript cache
143+
*.tsbuildinfo
144+
145+
# Optional npm cache directory
146+
.npm
147+
148+
# Optional eslint cache
149+
.eslintcache
150+
151+
# Optional REPL history
152+
.node_repl_history
153+
154+
# Output of 'npm pack'
155+
*.tgz
156+
157+
# Yarn Integrity file
158+
.yarn-integrity
159+
160+
# dotenv environment variables file
161+
.env
162+
.env.test
163+
164+
# parcel-bundler cache (https://parceljs.org/)
165+
.cache
166+
167+
# next.js build output
168+
.next
169+
170+
# nuxt.js build output
171+
.nuxt
172+
173+
# rollup.js default build output
174+
dist/
175+
176+
# Uncomment the public line if your project uses Gatsby
177+
# https://nextjs.org/blog/next-9-1#public-directory-support
178+
# https://create-react-app.dev/docs/using-the-public-folder/#docsNav
179+
# public
180+
181+
# Storybook build outputs
182+
.out
183+
.storybook-out
184+
185+
# vuepress build output
186+
.vuepress/dist
187+
188+
# Serverless directories
189+
.serverless/
190+
191+
# FuseBox cache
192+
.fusebox/
193+
194+
# DynamoDB Local files
195+
.dynamodb/
196+
197+
# Temporary folders
198+
tmp/
199+
temp/
200+
201+
# End of https://www.gitignore.io/api/node,intellij

index.html

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<meta name="viewport" content="width=device-width,initial-scale=1.0">
7+
<title>Vue tests</title>
8+
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.js"></script>
9+
<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.6/platform.js"></script>
10+
<script src="https://cdnjs.cloudflare.com/ajax/libs/benchmark/2.1.4/benchmark.js"></script>
11+
12+
<style>
13+
input {
14+
display: block;
15+
box-sizing: border-box;
16+
width: 100%;
17+
}
18+
19+
label {
20+
display: block;
21+
margin-top: 1em;
22+
font-weight: bold;
23+
}
24+
25+
button {
26+
margin: 2em 0;
27+
}
28+
29+
#results {
30+
font-family: sans-serif;
31+
border-collapse: collapse;
32+
width: 100%;
33+
}
34+
35+
#results td, #results th {
36+
border: 1px solid #ddd;
37+
padding: 8px;
38+
}
39+
40+
#results tr:nth-child(even){background-color: #f2f2f2;}
41+
42+
#results tr:hover {background-color: #ddd;}
43+
44+
#results th {
45+
padding-top: 12px;
46+
padding-bottom: 12px;
47+
text-align: left;
48+
background-color: #4f7bff;
49+
color: white;
50+
}
51+
52+
#results th.benchmark {
53+
background-color: #5faf61;
54+
}
55+
56+
#results td.code {
57+
font-family: monospace;
58+
font-size: 0.7em;
59+
white-space: pre;
60+
}
61+
</style>
62+
</head>
63+
<body>
64+
<h1>Vue3 benchmarks</h1>
65+
66+
<label for="url">url or version</label>
67+
<input type="text" id="url" placeholder="Example: 3.0.0-rc.12" value="3.0.0" />
68+
69+
<label for="benchmarks">benchmarks</label>
70+
<input type="text" id="benchmarks" placeholder="Example: mix,ref,computed; empty for all" />
71+
72+
<button id="start" onclick="start()">Start</button>
73+
<button id="abort" onclick="abort()" disabled>Abort</button>
74+
75+
<p>Link usage: <pre>?v=3.0.0-rc.12&b=ref,computed</pre></p>
76+
77+
<div id="started" style="display: none">
78+
<h2>Results</h2>
79+
<table id="results" style="">
80+
</table>
81+
</div>
82+
83+
<script src="src/main.js"></script>
84+
</body>
85+
</html>

package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "vue-next-benchmarks",
3+
"version": "1.0.0",
4+
"description": "Benchmarks Vue3 core features, to keep track of performance",
5+
"main": "index.js",
6+
"author": "Bas van Meurs, [email protected]",
7+
"license": "MIT"
8+
}

0 commit comments

Comments
 (0)