marko-js / isomorphic-ui-benchmarks Goto Github PK
View Code? Open in Web Editor NEWClient/server benchmarks for various UI libraries
Home Page: http://markojs.com/isomorphic-ui-benchmarks/
License: MIT License
Client/server benchmarks for various UI libraries
Home Page: http://markojs.com/isomorphic-ui-benchmarks/
License: MIT License
Hey - great idea but can't help but notice how inaccurate the results are
React is not as fast at SSR as marko, but it is not THAT much slower, and this has been popping up around the internet when searching for "framework performance compared" so it's a bit misleading
I didn't have time to fix everything, but just changing the SSR code for react / inferno / preact to be transpiled properly shows the following benchmarks for server-rendering the color picker:
npm run build-benchmark
sudo nice -n -20 npm run benchmark
inferno x 7,060 ops/sec ±0.50% (278 runs sampled)
marko x 8,382 ops/sec ±0.57% (277 runs sampled)
preact x 4,247 ops/sec ±0.40% (278 runs sampled)
react x 4,000 ops/sec ±1.07% (278 runs sampled)
vue x 920 ops/sec ±1.58% (206 runs sampled)
fork here: https://github.com/jnields/isomorphic-ui-benchmarks
Getting an error on build. Seems like vue.js isn't compiling.
Error transforming /isomorphic-ui-benchmarks-master/node_modules/vue/dist/vue.runtime.esm.js: Parse Error: Line 6699: Illegal export declaration
Error: Error transforming /isomorphic-ui-benchmarks-master/node_modules/vue/dist/vue.runtime.esm.js: Parse Error: Line 6699: Illegal export declaration
at throwError (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:2823:21)
at throwErrorTolerant (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:2835:24)
at parseSourceElement (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:6432:17)
at parseProgramElement (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:6491:16)
at parseProgramElements (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:6523:29)
at parseProgram (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:6536:16)
at Object.parse (/isomorphic-ui-benchmarks-master/node_modules/esprima-fb/esprima.js:7713:23)
at getAstForSource (/isomorphic-ui-benchmarks-master/node_modules/jstransform/src/jstransform.js:244:21)
at Object.transform (/isomorphic-ui-benchmarks-master/node_modules/jstransform/src/jstransform.js:267:11)
at Stream.flush (/isomorphic-ui-benchmarks-master/node_modules/envify/custom.js:28:32)
Type rollup --help for help, or visit https://github.com/rollup/rollup/wiki
child_process.js:526
throw err;
^
Isomorphic benchmark is wildly inacurate, despite respectul contribution of working PR from other framework maintainer.
#10
Merging contributed PR and updating README (Marko is still insanely fast). If you publish a benchmark and someone provides a PR which updates the implementation of one of the frameworks. The least you are obliged to do is to merge the pull request...
Duck and cover... absolute silence... FOR A YEAR, come on that's not just dragging your feet... ;)
Just merge... it won't take a minute…
#10
oh... and update the readme :)
Good luck!
If you run client-side benchmarks, vue.js is missing from the results and vue.js does not render as a comparison in the page. Although, vue.js does render as an individual client-side benchmarks page.
While i was making my first steps with the marko tutorial and were about to make the first commit to github i wondered what license i should pick.
According to https://choosealicense.com/no-license/ (a site operated by GitHub, Inc.) any repository that does not include a license defaults to exclusive copyright:
When you make a creative work (which includes code), the work is under exclusive copyright by default. Unless you include a license that specifies otherwise, nobody else can use, copy, distribute, or modify your work without being at risk of take-downs, shake-downs, or litigation.
And further down
If you find software that doesn’t have a license, that generally means you have no permission from the creators of the software to use, modify, or share the software.
The marko-starter code also includes no license.
To my understanding this prohibits me from pushing your code to any public repository.
It looks .babelrc file or other babel settings related. Note: My operating system is windows 10.
C:\Users\codar.victor\Downloads\isomorphic-ui-benchmarks-master>npm run build
> [email protected] build C:\Users\codar.victor\Downloads\isomorphi
c-ui-benchmarks-master
> npm run bundle --silent && npm run minify --silent
C:\Users\codar.victor\Downloads\isomorphic-ui-benchmarks-master\node_modules\bab
el-core\lib\transformation\file\index.js:600
throw err;
^
SyntaxError: C:/Users/codar.victor/Downloads/isomorphic-ui-benchmarks-master/ben
chmarks/color-picker/inferno/server.jsx: Unexpected token (8:16)
←[0m ←[90m 6 | ←[39m ←[36mreturn←[39m ←[36mfunction←[39m benchFn() {
←[90m 7 | ←[39m ←[36mvar←[39m html ←[33m=←[39m ←[33mInfernoServer←[39m←
[33m.←[39mrenderToString(
←[31m←[1m>←[22m←[39m←[90m 8 | ←[39m ←[33m<←[39m←[33mApp←[39m col
ors←[33m=←[39m{colors}←[33m/←[39m←[33m>←[39m)←[33m;←[39m
←[90m | ←[39m ←[31m←[1m^←[22m←[39m
←[90m 9 | ←[39m
←[90m 10 | ←[39m ←[36mreturn←[39m html←[33m;←[39m
←[90m 11 | ←[39m }←[33m;←[39m←[0m
at Parser.pp$5.raise (C:\Users\codar.victor\Downloads\isomorphic-ui-benchmar
ks-master\node_modules\babylon\lib\index.js:4333:13)
at Parser.pp.unexpected (C:\Users\codar.victor\Downloads\isomorphic-ui-bench
marks-master\node_modules\babylon\lib\index.js:1705:8)
at Parser.pp$3.parseExprAtom (C:\Users\codar.victor\Downloads\isomorphic-ui-
benchmarks-master\node_modules\babylon\lib\index.js:3670:12)
at Parser.pp$3.parseExprSubscripts (C:\Users\codar.victor\Downloads\isomorph
ic-ui-benchmarks-master\node_modules\babylon\lib\index.js:3414:19)
at Parser.pp$3.parseMaybeUnary (C:\Users\codar.victor\Downloads\isomorphic-u
i-benchmarks-master\node_modules\babylon\lib\index.js:3394:19)
at Parser.pp$3.parseExprOps (C:\Users\codar.victor\Downloads\isomorphic-ui-b
enchmarks-master\node_modules\babylon\lib\index.js:3324:19)
at Parser.pp$3.parseMaybeConditional (C:\Users\codar.victor\Downloads\isomor
phic-ui-benchmarks-master\node_modules\babylon\lib\index.js:3301:19)
at Parser.pp$3.parseMaybeAssign (C:\Users\codar.victor\Downloads\isomorphic-
ui-benchmarks-master\node_modules\babylon\lib\index.js:3264:19)
at Parser.pp$3.parseExprListItem (C:\Users\codar.victor\Downloads\isomorphic
-ui-benchmarks-master\node_modules\babylon\lib\index.js:4190:16)
at Parser.pp$3.parseCallExpressionArguments (C:\Users\codar.victor\Downloads
\isomorphic-ui-benchmarks-master\node_modules\babylon\lib\index.js:3493:20)
Any plans for a 2018 library update?
React 16 is out and improved performance, as has some other libraries.
If not, any qualms with someone attempting one?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.