SIGN IN SIGN UP

perf: Reduce reflection cost during SDK init (Init Reflection stack) (#5634)

* collection: Reduce reflection cost during SDK init

* perf(core): [Init Reflection 1] Probe class availability without initializing (#5635)

* perf(core): Probe class availability without initializing the class

LoadClass.loadClass used Class.forName(name) which initializes the
class. Used purely for availability probing during init, this eagerly
runs unrelated static initializers (e.g. Compose's Owner, the fragment
integration). Use Class.forName(name, false, classLoader) so the class
is only initialized lazily on first real use.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* changelog

* changelog: move init reflection entries to Performance

* perf(core): Limit no-init class probing to isClassAvailable

The previous change made loadClass itself skip class initialization,
which affected callers that load a class to actually use it (NDK
integration, OTEL span factory and scopes storage). Restore loadClass
to its initializing behavior and confine the non-initializing probe to
isClassAvailable, which is only ever used for classpath availability
checks. This keeps SDK init cheap while leaving real-use callers
unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
N
Nelson Osacky committed
8fe8bad58f1cfd746f853286f0f241a3f2c5b3fb
Parent: 012eaeb
Committed by GitHub <noreply@github.com> on 6/30/2026, 9:20:16 AM