Optimize BoundingBox and Client struct layouts for reduced memory footprint and better cache locality #327
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Optimize internal memory layouts and add validation tests
Why this matters
This improves memory and cache efficiency for large OCR outputs (many thousands of boxes), reducing heap usage and improving iteration speed — particularly in high-throughput or streaming OCR workloads.
Summary of changes
setVariablesToInitializedAPIfunction, as per commit: d625fe4Safety and compatability
Performance results
Migration notes
For projects consuming
goseractdirectly:bb.Box→ New:bb.Rect()image.Rectanglefield was replaced by coordinate fields (X0,Y0,X1,Y1)BlockNum,ParNum,LineNum,WordNum) are now int32 instead of intConfidenceis now float32 (previously float64). If your code performs floating point maths withConfidence, cast as needed:FromRectangle()constructor simplifies building boxes fromimage.Rectangle: