stride3d / stride3d/stride

Heavy GC pressure with default GameProfiler script

Open
#2,587 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Release Type: Official Release

Version: 4.2.0.2282

Platform(s): windows 11

Describe the bug
When the GameProfiler script is added to the scene, it puts the GC under a very heavy load.

To Reproduce
Steps to reproduce the behavior:

  1. Add GameProfiler script to project
  2. Add to the scene
  3. see constant SOH allocations

Expected behavior
The GameProfiler should not effect benchmarking in a significant way. It also seems to constantly allocate over time without cleaning up? I saw an increase of about 10MB over a 10 minute run.

Screenshots
Image

Log and callstacks
None, I can try to run dotmemory when I have the time though.

Additional context
This was reported by @jkh404 in the community toolkit repo. https://github.com/stride3d/stride-community-toolkit/issues/189

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the report with the GameProfiler script added to a project and scene on Windows 11, then inspect the constant SOH allocations and the reported growth of about 10 MB over 10 minutes. Use allocation profiling to identify the GameProfiler path responsible; done means benchmarking is not significantly affected and allocations do not continually accumulate.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.