-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* feat(lib): add typescript refactored version Add typescript refactored version and benchmark tests * Added lite better version * perf(lib): add better typescript version Implemented typescript version that improves performance by 10%-15%. * Update source.js * Update * Update * Updated * Updated * Updated * Updated * Update node.js * Build * Final implementation * Upgrade dependencies * Change utf-8 to utf8 which Node uses
- Loading branch information
1 parent
5caa9a6
commit f8ec286
Showing
30 changed files
with
3,379 additions
and
3,806 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
[{"/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/register.js":"1","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/rollupSource.js":"2","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/dist/valyrian.min.js":"3","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/lib/index.js":"4","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/hooks.js":"5","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/node.js":"6","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/node.sw.tpl.js":"7","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/request.js":"8","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/router.js":"9","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/signals.js":"10","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/store.js":"11","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/sw.js":"12","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/v-model.js":"13","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/directives_test.js":"14","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/hooks_test.js":"15","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/hyperscript_test.js":"16","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/keyed_test.js":"17","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/lifecycle_test.js":"18","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/mount_n_update_test.js":"19","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/node_test.js":"20","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/request_test.js":"21","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/router_test.js":"22","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/signals_test.js":"23","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/store_test.js":"24","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/utils/tree-adapter.js":"25"},[688,1607308222699.7341,"26"],[2068,1607120291416.5527,"27"],[4951,1607309093507.3,"28"],[13063,1607120673640.9028,"29"],[2801,1601561147084.002,"30"],[9901,1607401764856.6829,"31"],[4083,1601561152283.9846,"32"],[4175,1601711784571.025,"33"],[6630,1607402317220.4155,"34"],[4083,1601561161489.3032,"35"],[2041,1601561163851.908,"36"],[448,1601561166242.2478,"37"],[3182,1601561182841.262,"38"],[14551,1607240550740.148,"39"],[5491,1601561187310.7358,"40"],[2790,1602046213316.2332,"41"],[2477,1601561192499.9382,"42"],[3853,1601561256934.404,"43"],[8396,1602046229772.1895,"44"],[6623,1607119389329.592,"45"],[8776,1601711047778.4246,"46"],[9724,1607402067407.951,"47"],[5720,1601561591586.4749,"48"],[4426,1601561595435.788,"49"],[14845,1602043898530.3389,"50"],"31bff5a8431e32a68275fe4e83ed7607a6132a9db824f5fc2aadc622a5934e4b","0ec7df7c9a6bab0fd6d04c253af13a09b487cba19889d7dc7a0df382f5535f00","05f8fbc05e9e2c371f3feac40047010a62d3dcea864437667f9bdf160887c39d","5c0ea99ac4af5513b9144084d68f4626bf5927f1b4e184368cf10edcab0a44f6","16b6f25485c43e37c210e4bef87353a9a9c0e639c9509770dc63ab49dec3525a","97443117b52b9716e65a8c96a5ebfe6eb65aa7d17c9100ae162ffefc2338f7c2","9e41c42d425160d207ad8dbe2eddd6c2bf432338665826d07c897e0f2b44a14d","0f4356afca5c145d5a323cd651da7354a490286b68bdd63078750f936d7e0483","7908598f1046f367c3ce6c02bf9b44970e333b35c449b43363f96dceb1008958","8d1fe0d59ee427d044a50a05fef348508a6e3c0470fe1fc027b1414ca488edb9","a950855c17dfc2667d895f978f7374e977e2631344198066f5972e92d0994289","74dd7dfefb006f754a7c5b13d8086b36990b440c16ce5b60b2b661188ac91c6c","ba3588cbe7fe65446cbdc8b9ffed65283c602fef940cb68d5fba025bb1aaad58","7125bc46c5881021937ed7df34b8b4b047443bdc7a621cd8203827240085ca40","ef5804184ff8456f5e366df6bfff69f5a3afee68423593338e4800c79816c9c0","f5ee42c239f8b6306df002d52bd928c5b521db32b0616e5e676e69c34ae80b7c","3e9635114cde575b7d4b68c636752d3919eefa460998dc33f0590d88c9090020","4a1e952b9225b20ac59c16d15fb586602804ff03e05813c1399c206097609c03","dccc69630bab05c149376b89b581dabd10ebfd2015d0b65a8a4ed413b0cf14c5","dacb264f5d142800de5510deeceba1665ac70bfffe32b896427ed5dc5bff9087","5cac321ab5cf8f969d3629db4b4df564485a456fcca0c4a509ce12bb681a798e","c97026af0426d19cd7153178c3373cdf90fe0f12f5c9a1c70ccf1cacfed3ae5e","b6c8e80c37efde1a28cb7681d7d9b31d6cb10ad25d74691e84b87237b347497b","020812b85ad71a026e6b73f6e7fb0601518d903093e2484605d0271666622efa","9c0dd2ed2e6b14a644c8a2c1b28761b16f7253b182307a3f1b9fb529088b602c"] | ||
[{"/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/register.js":"1","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/source.js":"2","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/dist/valyrian.lite.js":"3","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/dist/valyrian.min.js":"4","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/lib/index-old.js":"5","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/lib/index.ts":"6","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/hooks.js":"7","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/node.js":"8","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/node.sw.tpl.js":"9","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/request.js":"10","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/router.js":"11","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/signals.js":"12","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/store.js":"13","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/sw.js":"14","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/v-model.js":"15","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/bench/hyperscript.test.js":"16","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/bench/iterations.test.js":"17","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/bench/mount_n_update.test.js":"18","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/directives_test.js":"19","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/hooks_test.js":"20","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/hyperscript_test.js":"21","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/keyed_test.js":"22","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/lifecycle_test.js":"23","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/mount_n_update_test.js":"24","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/node_test.js":"25","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/request_test.js":"26","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/router_test.js":"27","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/signals_test.js":"28","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/test/store_test.js":"29","/home/masquerade-circus/NodeJs/ownprojects/valyrian.js/plugins/utils/tree-adapter.js":"30"},[688,1617422138186.5078,"31"],[306,1616825108555.1147,"32"],[5511,1616825095291.283,"33"],[5601,1619653418514.3186,"34"],[14148,1614725354934.1553,"35"],[19967,1619650803442.944,"36"],[2711,1614312312585.8137,"37"],[9953,1617415452958.3203,"38"],[4083,1601561152283.9846,"39"],[4221,1614252184732.3354,"40"],[6630,1607402317220.4155,"41"],[4083,1601561161489.3032,"42"],[2041,1601561163851.908,"43"],[448,1601561166242.2478,"44"],[3182,1601561182841.262,"45"],[1482,1619652328838.7742,"46"],[2559,1614986276132.9998,"47"],[8221,1619653192165.162,"48"],[14550,1619651208081.9885,"49"],[5492,1616826188153.037,"50"],[2791,1616826188096.7952,"51"],[2478,1616826186628.4065,"52"],[3854,1616826186616.3247,"53"],[8671,1619650888412.6794,"54"],[7378,1619654368076.149,"55"],[8772,1616826187324.6958,"56"],[9996,1616826187980.2695,"57"],[5703,1616826186628.4065,"58"],[4355,1616826187195.9941,"59"],[14845,1602043898530.3389,"60"],"31bff5a8431e32a68275fe4e83ed7607a6132a9db824f5fc2aadc622a5934e4b","19413710bd8e336b582a291813142fc3093fc0adb44b1aacb9bac9bf51d7a1ce","d4df20560495961b3ab9405dbd162e5846b2d3e66a94f307bf08ae51ed89625c","886788eaf65d7bf40a15ae748362df60669d257f30447af25a83c78aa76b8e9f","6aa7b21dc8aa28b129933eadeff2632a4b52d5e9d977660a3767bf3ae2cc5aa5","8920f4da5a696c9aa33e5af02971a375b843e87cd77f3070ddd428871b3b7e5f","2f9c50259a30ee02d28e21cba4bae4e844a118092e1c48239181dfe5e27647f6","8ab4366c6ebe9bd33572aa16e928c708609fec868c486ec3eddfc89bc0f77ea8","9e41c42d425160d207ad8dbe2eddd6c2bf432338665826d07c897e0f2b44a14d","2e2986dbf0786e8d84ef7ffa3eb34e891d636c82ace995a45fd29944429c60b8","7908598f1046f367c3ce6c02bf9b44970e333b35c449b43363f96dceb1008958","8d1fe0d59ee427d044a50a05fef348508a6e3c0470fe1fc027b1414ca488edb9","a950855c17dfc2667d895f978f7374e977e2631344198066f5972e92d0994289","74dd7dfefb006f754a7c5b13d8086b36990b440c16ce5b60b2b661188ac91c6c","ba3588cbe7fe65446cbdc8b9ffed65283c602fef940cb68d5fba025bb1aaad58","7b843fdc12dc95e3285059a9552a340a776e8134e50f79c5f2239fee5a356b66","3fe7303903dc5d4031d325600e7d5f6b44ebe1835805af8f1c3b17481f6e1b93","426f0fa1900c9abd9d90e28cebe0cd2d5ac49176a7e376aec5b278d81fbb9a30","4509d29952f10c5c50a38c11315cfd70b6bbeb384663d259c11e9908755e8a77","d29af28903e17822e2124745feba6bd75c795abdb59b8b1768f79d10f4e2cfdb","40995000796dfc72a75a56f6c8a91a82bf7e69a58a3b9ac87a995ba90f05f5d0","682192795f6b060c66a1be5f61a7f9e1e9df373cf8cfed97face6d61ceeb13cc","ab3b54754e1dd3c4e3d4c07dfe45082705fffd50de4c09e50fae42383819586f","74a22512172724fbcd202b243b458b17c2b80788c400cfd03c788356b545a7c8","95b5d786979d8b6fe27c40e3a91a8bc2eb62aecc8519ccb679adc64170f2d898","41ebedb1c6159aa84df02d07c4e86fbed45dd005e6c1d5cb83204cf61080e10c","3f8a5325d2a53f10b134a0d201a43c0a73d01b5b9eb4f95cb8a13ee0958d8bad","cf8d15f6c280171af4626c7b7031435598c1b1db0eeb5ae6ce7f0988d1eb3936","24b75a991dd9d43aaf12333fc3b5080631ec8e5e68e0ccca7bb01b41b4bf81b6","9c0dd2ed2e6b14a644c8a2c1b28761b16f7253b182307a3f1b9fb529088b602c"] |
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
[ | ||
{ | ||
"tag": "898696a81b7265ff5f3311ac95e2f75cc4ff8e5b", | ||
"timestamp": "2021-04-28T23:42:22.955Z", | ||
"suites": { | ||
"hyperscript": { | ||
"Valyrian next": { | ||
"hz": 848454597.2350883, | ||
"cycles": 7, | ||
"count": 46929770, | ||
"times": { | ||
"cycle": 0.0553120581265432, | ||
"elapsed": 6.036, | ||
"period": 1.1786134499816043e-9, | ||
"timeStamp": 1619653288587 | ||
} | ||
}, | ||
"Valyrian 5.0.8": { | ||
"hz": 846741853.8975248, | ||
"cycles": 8, | ||
"count": 47103726, | ||
"times": { | ||
"cycle": 0.05562938194584701, | ||
"elapsed": 6.225, | ||
"period": 1.1809974851213896e-9, | ||
"timeStamp": 1619653282354 | ||
} | ||
} | ||
}, | ||
"Set.has vs [].indexOf": {}, | ||
"Object.keys for loop vs Object.keys for of vs for in": {}, | ||
"typeof function vs startsWith vs charAt vs string[0]": {}, | ||
"Array.isArray vs typeof object & Array.isArray": {}, | ||
"Mount and update: Mount": { | ||
"Valyrian 5.0.8": { | ||
"hz": 297270.17292800767, | ||
"cycles": 6, | ||
"count": 16437, | ||
"times": { | ||
"cycle": 0.055293135662085685, | ||
"elapsed": 6.078, | ||
"period": 0.000003363943278097322, | ||
"timeStamp": 1619653294632 | ||
} | ||
}, | ||
"Valyrian next": { | ||
"hz": 291317.89343715506, | ||
"cycles": 6, | ||
"count": 16922, | ||
"times": { | ||
"cycle": 0.05808774668916971, | ||
"elapsed": 6.027, | ||
"period": 0.0000034326762019365153, | ||
"timeStamp": 1619653300715 | ||
} | ||
} | ||
}, | ||
"Mount and update: Update": { | ||
"Valyrian next": { | ||
"hz": 358401.3303945263, | ||
"cycles": 6, | ||
"count": 19964, | ||
"times": { | ||
"cycle": 0.05570291822863418, | ||
"elapsed": 5.929, | ||
"period": 0.0000027901682142173, | ||
"timeStamp": 1619653312864 | ||
} | ||
}, | ||
"Valyrian 5.0.8": { | ||
"hz": 349095.01074729644, | ||
"cycles": 8, | ||
"count": 19630, | ||
"times": { | ||
"cycle": 0.056231110143850786, | ||
"elapsed": 6.107, | ||
"period": 0.0000028645496762022817, | ||
"timeStamp": 1619653306750 | ||
} | ||
} | ||
}, | ||
"Mount and update: Render list": { | ||
"vOld": { | ||
"hz": 345.7026579518291, | ||
"cycles": 5, | ||
"count": 20, | ||
"times": { | ||
"cycle": 0.05785318550483011, | ||
"elapsed": 6.049, | ||
"period": 0.0028926592752415055, | ||
"timeStamp": 1619653318800 | ||
} | ||
}, | ||
"VNext": { | ||
"hz": 343.8288552544732, | ||
"cycles": 6, | ||
"count": 19, | ||
"times": { | ||
"cycle": 0.05526005077711642, | ||
"elapsed": 6.154, | ||
"period": 0.0029084237251113905, | ||
"timeStamp": 1619653324855 | ||
} | ||
} | ||
}, | ||
"Mount and update: Render keyed list": { | ||
"vOld": { | ||
"hz": 309.7662213667062, | ||
"cycles": 3, | ||
"count": 17, | ||
"times": { | ||
"cycle": 0.054880096109236935, | ||
"elapsed": 5.961, | ||
"period": 0.003228240947602173, | ||
"timeStamp": 1619653331016 | ||
} | ||
}, | ||
"VNext": { | ||
"hz": 307.2498890113779, | ||
"cycles": 5, | ||
"count": 17, | ||
"times": { | ||
"cycle": 0.0553295561951219, | ||
"elapsed": 5.972, | ||
"period": 0.003254679776183641, | ||
"timeStamp": 1619653336982 | ||
} | ||
} | ||
} | ||
} | ||
} | ||
] |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
let { compare, benchmark, before } = require("@masquerade-circus/bench-test"); | ||
|
||
import "../lib/index"; | ||
|
||
import expect from "expect"; | ||
import fs from "fs"; | ||
import nodePlugin from "../plugins/node"; | ||
import vOld from "./index-old"; | ||
|
||
let VNext = v; | ||
|
||
vOld.usePlugin(nodePlugin); | ||
|
||
compare("hyperscript", () => { | ||
let date = new Date(); | ||
before(async () => { | ||
vOld.inline.extensions("ts"); | ||
await vOld.inline.ts("./lib/index.ts", { outputOptions: { compact: true } }); | ||
await vOld.inline.js("./bench/index-old.js", { outputOptions: { compact: true } }); | ||
console.log(vOld.inline.ts()[0].raw.length); | ||
console.log(vOld.inline.js()[0].raw.length); | ||
|
||
let compiled = fs.readFileSync("./dist/valyrian.min.js", "utf8"); | ||
console.log(compiled.length); | ||
|
||
expect(vOld("div", null, [null, "Hello", , 1, date, { hello: "world" }, ["Hello"]])).toEqual({ | ||
name: "div", | ||
props: {}, | ||
children: [[null, "Hello", undefined, 1, date, { hello: "world" }, ["Hello"]]] | ||
}); | ||
expect(VNext("div", null, [null, "Hello", , 1, date, { hello: "world" }, ["Hello"]])).toEqual({ | ||
name: "div", | ||
props: {}, | ||
children: [[null, "Hello", undefined, 1, date, { hello: "world" }, ["Hello"]]] | ||
}); | ||
}); | ||
|
||
benchmark("Valyrian 5.0.8", () => { | ||
vOld("div", null, [null, "Hello", , 1, date, { hello: "world" }, ["Hello"]]); | ||
}); | ||
benchmark("Valyrian next", () => { | ||
VNext("div", null, [null, "Hello", , 1, date, { hello: "world" }, ["Hello"]]); | ||
}); | ||
}); |
Oops, something went wrong.