Table of Contents

Class UIFastPath

Namespace
GrindFest
Assembly
GrindFest.dll

FastPath registrations for the C# members the OneJS UI reads through the plain CS proxy.

The proxy resolves every property through reflection and allocates on each read, which the profiler shows up as RuntimeType.GetPropertiesByName / GetFields_internal on the JS -> C# interop path. FastPath replaces the reflection with a typed delegate, so a registered member costs nothing on the C# side.

Only register what the UI actually reads per tick, and only PRIMITIVES or Unity structs: strings and reference types allocate regardless of FastPath (UTF8 marshalling / handle + type hint), so registering those buys nothing. Values that are already driven by events (useEventSync / useObservableList) never go through the proxy either.

Registration is per TARGET TYPE, so one entry covers every instance of that type.

public static class UIFastPath
Inheritance
object
UIFastPath