question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Performance regression

See original GitHub issue

We are considering using cannon-es in three.js but seems like there’s a performance regression.

@Mugen87 converted cannon.js to modules and here’s the running example: https://raw.githack.com/mrdoob/three.js/dev/examples/physics_cannon_instancing.html

Screen Shot 2020-06-22 at 11 14 43 PM

This is the same example using cannon-es: https://raw.githack.com/Mugen87/three.js/dev45/examples/physics_cannon_instancing.html

Screen Shot 2020-06-22 at 11 12 39 PM

https://github.com/mrdoob/three.js/pull/19709

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:2
  • Comments:12 (8 by maintainers)

github_iconTop GitHub Comments

3reactions
marcofugarocommented, Jun 23, 2020

Thanks for the issue and the usage example. This also looks related to #16. I’ll look into it soon!

2reactions
marcofugarocommented, Jun 27, 2020

Hello friends, I’ve discovered the issue.

Basically there are tons or commit which are in the cannon.js repo but haven’t been published to npm or built into the cannon.js bundle. Here is the full list. When we built the source files again in cannon-es, we inherited automatically all those commits.

Between these commits there is 86b0444, where schteppe implemented the fixed timestepping from the last snippet of this famouse article, however it was left unfinished or was not tested properly, leading to the framerate issues.

I’ve tried to fix those issues in #40, but of course I’m not schteppe. If you guys @mrdoob and @Mugen87 could test with the cannon-es bundle from that branch that would be grand 🙏

Also @codynova issue #16 should be fixed as well, could you do a test? 🙏

@arpu is right, the third parameter is used to tell how many maximum internal steps the step() function can take if there is too much lag. If you set it to 1, it doesn’t take any internal steps, but the simulation is technically slower. If you set it to an high number, it takes as many steps as needed to make the interaction have a fixed timestep, however if the step is expensive (a lot of boxes), taking too many steps can cause lag by itself.

Read more comments on GitHub >

github_iconTop Results From Across the Web

What is Performance Regression Testing? - Mabl
Performance regression testing is a comparative approach that examines how a software application performs across in successive builds.
Read more >
Performance Regression Testing - OctoPerf
Performance Regression being a subset of regression testing as a discipline is therefore ensuring that previously developed and tested ...
Read more >
Performance (Regression) - RapidMiner Documentation
This operator is used for statistical performance evaluation of regression tasks and delivers a list of performance criteria values of the regression task....
Read more >
Regression Performance - C3 AI
Evaluating performance of a regression model requires a different approach and different metrics than are used to evaluate classification models.
Read more >
Assessment of Regression Models Performance • performance
performance. DOI downloads total status. Test if your model is a good model! A crucial aspect when building regression models is to evaluate...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found