Update Performance and memory optimization authored by Iker Hurtado's avatar Iker Hurtado
...@@ -53,24 +53,23 @@ But later once using the *BufferGeometry* versions of the primitives I realized ...@@ -53,24 +53,23 @@ But later once using the *BufferGeometry* versions of the primitives I realized
> Fixed 18 segments per atom (**current implementation**): 115-120M (memory footprint) / 42M (javascript live memory) > Fixed 18 segments per atom (**current implementation**): 115-120M (memory footprint) / 42M (javascript live memory)
### Reusing object attributes (geometry, materials, etc) for atoms (species prototype atom for each species) and bonds ### Reusing 3D objects attributes (geometry, materials, etc) for atoms and bonds
(memory) PENDING
(memory) `PENDING`
## Structure representation and algorithms ## Structure representation and algorithms
The structure representation (data model) and the algorithms working on it can be optimized to work with huge structures efficiently The structure representation (data model) and the algorithms working on it can be optimized to work with huge structures efficiently
### Use efficient Javascript data structures ### Use efficient Javascript data structures
PENDING `PENDING`
Idea: used Typed array instead of regular arrays Idea: used Typed array instead of regular arrays
### Create efficient math functions/operators ### Create efficient math functions/operators
PENDING `PENDING`
Idea: get rid of `mathjs` library Idea: get rid of `mathjs` library
...@@ -83,6 +82,6 @@ The regular UI can be optimized to work with huge structures efficiently ...@@ -83,6 +82,6 @@ The regular UI can be optimized to work with huge structures efficiently
### Study the behaviour of non-responsive UI components ### Study the behaviour of non-responsive UI components
PENDING `PENDING`
e.g: atoms list when you remove one e.g: atoms list when you remove one