Skip to content

Conversation

@kazimuth
Copy link
Contributor

@kazimuth kazimuth commented May 12, 2025

Description of Changes

Leverages clockworklabs/SpacetimeDB#2725 to speed up row deserialization. Also updates DLLs for recent upstream fixes.

Changes:

  • Uses much simpler code when deserializing enums, avoiding the use of reflection
  • Uses manually monomorphized row deserialization methods, which again avoid the use of reflection when constructing row objects

API

  • This is an API breaking change to the SDK

If the API is breaking, please state below what will break

Requires SpacetimeDB PRs

clockworklabs/SpacetimeDB#2725

Testsuite

SpacetimeDB branch name: jgilles/perf/faster-allocation

Testing

Write instructions for a test that you performed for this PR

  • Blackholio
  • Bitcraft (have done a basic test but no in-depth testing)

@kazimuth kazimuth force-pushed the jgilles/faster-deser branch from 270b053 to c92a633 Compare May 13, 2025 15:48
@kazimuth
Copy link
Contributor Author

Test failures seem to be because Unity is getting more aggressive with their license enforcement...

@kazimuth
Copy link
Contributor Author

I have tested this in BitCraft and am happy with it.

Copy link
Contributor

@rekhoff rekhoff left a comment

Choose a reason for hiding this comment

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

The reasoning here makes sense and is a well documented justification. I don't seen any issues with this, approved.

@kazimuth kazimuth merged commit 2503ff9 into master May 15, 2025
10 of 13 checks passed
@kazimuth kazimuth deleted the jgilles/faster-deser branch May 15, 2025 22:15
bfops pushed a commit that referenced this pull request Jul 28, 2025
## Description of Changes
Leverages clockworklabs/SpacetimeDB#2725 to
speed up row deserialization. Also updates DLLs for recent upstream
fixes.

Changes:
- Uses much simpler code when deserializing enums, avoiding the use of
reflection
- Uses manually monomorphized row deserialization methods, which again
avoid the use of reflection when constructing row objects

## API

 - [ ] This is an API breaking change to the SDK

*If the API is breaking, please state below what will break*

## Requires SpacetimeDB PRs
clockworklabs/SpacetimeDB#2725

## Testsuite

SpacetimeDB branch name: jgilles/perf/faster-allocation

## Testing
*Write instructions for a test that you performed for this PR*

- [x] Blackholio
- [x] Bitcraft (have done a basic test but no in-depth testing)
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.

3 participants