Improve particle system memory management performance
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
From https://github.com/AnalyticalGraphicsInc/cesium/pull/5212#issuecomment-310212896
> In the fireworks Sandcastle example, I would not expect this to be 10% of the profile?

and https://github.com/AnalyticalGraphicsInc/cesium/pull/5212#issuecomment-310238663
> The problem is the memory management again. Sometimes more particles are created than was estimated and they get removed later. This causes the number of commands from the billboard collection to change. For every new command, it generates the OIT shader and looks it up in the cache.
Contributor guide
Research direction
Start with the fireworks Sandcastle example and profile its particle system, then trace memory management through the billboard collection and OIT shader cache described in the linked discussion. Done should mean that particle-count changes no longer cause avoidable shader generation and lookup overhead, with the improvement confirmed by profiling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100