Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a debug.IsDebug check before splitting strings #3134

Merged
merged 2 commits into from
Oct 18, 2024

Conversation

gabstv
Copy link
Contributor

@gabstv gabstv commented Oct 18, 2024

What issue is this addressing?

--

What type of issue is this addressing?

feature

What this PR does | solves

Since debug.IsDebug is a constant, by putting the strings.Cut calls inside the check this makes the (*commandqueue).flush method faster when Ebitengine is compiled without the debug build tag.

Without the if debug.IsDebug check, unnecessary allocations occur (since the logger is a noop logger when debug is disabled):
Screenshot_20241018_084146

GC Details after the change:
Screenshot_20241018_084204

This happens because Go knows that IsDebug is a constant (and the compiler will optimize this away on production builds).

Copy link
Owner

@hajimehoshi hajimehoshi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@hajimehoshi hajimehoshi merged commit 2ad0e9a into hajimehoshi:main Oct 18, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants