yohamta / donburi

Just another ECS library for Go/Ebitengine
https://pkg.go.dev/github.com/yohamta/donburi
Other
251 stars 21 forks source link

Strong slowdown in the recent versions #109

Open sedyh opened 1 year ago

sedyh commented 1 year ago

Problem

Hello, I found a very strange behavior. Looks like the version of lib that is a year older works better than the current one...

Branch develop: image

Branch main: image

Also, latest tag has broken wheel in bunnymark example.

yohamta commented 1 year ago

Hi 👋 Yeah, that seems weird. I'll give it a test to see if I can replicate the issue.

sedyh commented 1 year ago

My friend and I tested the performance decline by version, here are the most significant changes:

Commit Max entities per 60 fps
Present
4b9bfbdb 22000
42b6af0a 30000
cd6a0a44 32000
Past
yohamta commented 12 months ago

I've also run bunnymark on my M2 mac and it's true that the performance has declined. Hmm, it seems there's only changes in dependencies? I think we need to check profiling to identify the cause.

Commit Max entities per 60 fps
4b9bfbd 52000 screenshot
42b6af0 65000 screenshot
sedyh commented 7 months ago

Hello, is there any updates on this?

yohamta commented 7 months ago

Hello, not right now. I'm thinking that there might be the other way to improve the performance. Maybe we can optimize the component data storage for memory alignment. Not sure how much it works until experiment.

setanarut commented 7 months ago

Please specify the previous and next donburi version numbers. Which version is faster. Which version is slower?

sedyh commented 7 months ago

Please specify the previous and next donburi version numbers.

Hello, they were listed above.

https://github.com/yohamta/donburi/issues/109#issuecomment-1752280935

setanarut commented 7 months ago

Please specify the previous and next donburi version numbers.

Hello, they were listed above.

#109 (comment)

These are not version numbers. The version number does not appear in the Github Mobile app, that's why I sent a message.

  1. v1.3.7 - Fast
  2. v1.3.8 - Slow
sedyh commented 7 months ago

These are not version numbers. The version number does not appear in the Github Mobile app, that's why I sent a message.

Yes, these are 1.3.7 and 1.3.8, but I do not advise to tie into versions, since we're testing specific commits. From the pov of go get, both can be specified via @.