Comments (8)
I did initial checks on this for v0.1.0 and it was within reason (initing the compiled functions was around the cost of say the jQuery.support
object). I've since reduced the number of compiled methods and inlined the templates for production builds so times should be even better. I will do an official bench of this though.
from lodash.
OK, I benched it again using a custom build with only the compiled methods crammed into a test loop so keep that in mind: http://jsperf.com/lodash-compile-cost
The custom build was made using
node build include=contains,every,filter,find,forEach,map,pluck,reduce,reject,some,values,defaults,extend,functions,isEmpty,keys
from lodash.
How does this compare to the startup cost of underscore?
from lodash.
Any chance of having the compiler build out the complete functions? I.e. do all the meta stuff at build time? If you keep the actual bytes on disk as repetitive as possible then gzipping will compress it nicely.
from lodash.
How does this compare to the startup cost of underscore?
Considering the benchmark is testing the cost of one time method compiling you can assume because Underscore lacks compiled methods that it doesn't have that cost.
Underscore pays it's perf tax per execution of each method, while Lo-Dash pays its one time up front. The startup will vary for custom builds with less compiled methods too, but I don't believe the kitchen-sink startup cost is an issue at the moment.
Any chance of having the compiler build out the complete functions? I.e. do all the meta stuff at build time? If you keep the actual bytes on disk as repetitive as possible then gzipping will compress it nicely.
Yes, it is absolutely possible to inline the methods, I do this already for the iteratorTemplate
. I will experiment with this to see if the results are beneficial.
from lodash.
After some experimentation we have decided not to use lodash on mobile yet because of the startup time cost. So, if that can be solved it would be awesome.
from lodash.
Yap, expect the "mobile" build to be committed soon.
from lodash.
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
from lodash.
Related Issues (20)
- Merge mutates source object if nested property is a class instance
- Future compatibility with Node.js/npm HOT 1
- Allow Default Value for toNumber("problem", 0) HOT 8
- isBuffer from lodash-es doesn't work HOT 1
- curryRight is broken in list.map context HOT 1
- Avoiding Lodash version disclosure HOT 1
- multiple vulnerabilities that exist in lodash.findlast HOT 4
- Attempt structuredClone in cloneDeep before doing manual clone HOT 6
- _.trimStart not work with "/" char
- _.kebabCase and _.camelCase treat some digits as delimiters but not others HOT 1
- async attempt
- lodash-es outdated HOT 1
- feature request: Safe maths functions HOT 6
- Alias `_.tail` to `_.last` HOT 2
- _.deburr() - ț not convert to t HOT 3
- Typescript error HOT 7
- Discussion on Performance Issues of `trimStart` and `trimEnd`(关于 `trimStart` 和 `trimEnd` 性能问题的讨论) HOT 3
- array _.difference bug HOT 1
- CVE-2021-23337 lodash versions prior to 4.17.21 are vulnerable to Command Injection via the template function. HOT 4
- There may be a bug here HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lodash.