Comments (2)
thanks for the detailed explanation and pretty much what I anticipated.
from bitecs.
i try to make bitECS as performant as possible, and let the users degrade the performance where appropriate for their particular use-case. one of the keys to this is creating as little garbage as possible so that the GC has nothing to clean up, and that is accomplished by pre-allocating everything up-front. technically this new function of yours, while syntactically cleaner, creates an object every time you add a component. the original addComponent
creates no objects and therefor has no chance creating any garbage to clean up.
my goal with bitECS is to do less for the user and remain as flexible and performant as possible for all potential use-cases. this function does more for the user, and creates objects, so i won't be adding anything like this into the API.
not to say i discourage functions like this, just want to keep GC-generating things outside of the API. all depends on your use-case :)
from bitecs.
Related Issues (20)
- Are you gonna port this library to TypeScript somehow? HOT 1
- What about boolean type in a component? HOT 5
- How to define two-dimensional array aka matrix? HOT 2
- Query operators HOT 2
- null entity id HOT 1
- Serialize/Deserialize a single entity with components? HOT 1
- query for newly added Component
- Resizing smaller than the defaultSize always errors
- getEntityComponents does not return component name HOT 1
- How to push / pop from a list? HOT 1
- Query for mixed composition with Change HOT 1
- Could not find declaration file for module 'bitecs' HOT 1
- Is it necessary to make a query on every frame tick or are there any optimization tricks to avoid it if nothing changed? HOT 2
- defineComponent size not respected
- How to get MAX number for the current type? HOT 1
- RemoveEntity() doesn't remove entity from Queries or Component HOT 1
- Bitecs resize data stores issue HOT 1
- Destructuring performance HOT 2
- How to handle destroyed entities cleanup in central location HOT 4
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 bitecs.