Skip to content

Improve performance, migrate tests to testify, expand test coverage#22

Open
sergeyfast wants to merge 2 commits intomasterfrom
performance-review
Open

Improve performance, migrate tests to testify, expand test coverage#22
sergeyfast wants to merge 2 commits intomasterfrom
performance-review

Conversation

@sergeyfast
Copy link

  • Server hot-path optimization: fast path for single requests without wrapping into an array, replaced unicode.IsSpace with direct byte comparison in IsArray, replaced strings.SplitN with strings.Cut, optimized ConvertToObject with pre-allocated buffer
  • PackageInfo.String() optimization: replaced string concatenation with strings.Builder
  • Test framework migration from goconvey to testify: replaced github.com/smartystreets/goconvey with github.com/stretchr/testify (assert/require) across all test files
  • Expanded test coverage: added unit tests for JSON-RPC 2.0 spec compliance (ID formats, version validation, batch/params edge cases), response structure tests, concurrency tests, context function tests, Error/Response API tests
  • Added benchmarks: IsArray, ConvertToObject, Do() (single/batch/notification/error), ServeHTTP (sequential/parallel), middleware overhead
  • Makefile: added -race flag to test target, added bench target
  • README: fixed code examples (pointer receivers, removed dependency on testdata package)

- Server hot-path optimization: fast path for single requests without wrapping into an array, replaced unicode.IsSpace with direct byte comparison in IsArray, replaced strings.SplitN with strings.Cut, optimized ConvertToObject with pre-allocated buffer
- PackageInfo.String() optimization: replaced string concatenation with strings.Builder
- Test framework migration from goconvey to testify: replaced github.com/smartystreets/goconvey with github.com/stretchr/testify (assert/require) across all test files
- Expanded test coverage: added unit tests for JSON-RPC 2.0 spec compliance (ID formats, version validation, batch/params edge cases), response structure tests, concurrency tests, context function tests, Error/Response API tests
- Added benchmarks: IsArray, ConvertToObject, Do() (single/batch/notification/error), ServeHTTP (sequential/parallel), middleware overhead
- Makefile: added -race flag to test target, added bench target
- README: fixed code examples (pointer receivers, removed dependency on testdata package)
server.go Outdated

if req.ID == nil {
// notification — fire and forget
s.processRequest(ctx, req)
Copy link
Author

Choose a reason for hiding this comment

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

should be in go routine

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.

1 participant