Skip to content

Testing, do not merge — OOM fix CI run 7/9#297

Draft
djette-st wants to merge 2 commits intomainfrom
fix-oom-test-7
Draft

Testing, do not merge — OOM fix CI run 7/9#297
djette-st wants to merge 2 commits intomainfrom
fix-oom-test-7

Conversation

@djette-st
Copy link
Collaborator

This PR is only to trigger parallel CI builds. Do not merge.

CI stress test run for the OOM fix on branch fix-oom (#281).

- Recycle captured bitmap in createBitmapFromActivity() after saving to
  disk, eliminating ~9.6 MB leaked per test invocation
- Switch IntBuffer allocation from heap (IntBuffer.allocate) to native
  memory (ByteBuffer.allocateDirect) to bypass JVM heap constraints
- Add overflow guard for large capacity * INTEGER_BYTES computations
- Wrap ParallelPixelProcessor analyze() and transform() in try/finally
  to guarantee buffer cleanup on exceptions
- Recycle diff bitmap in HighContrastDiff.generate() after saving
- Update ImageBufferTest to reflect direct buffer allocation behavior
Replace full-image IntBuffer allocation with stripe-based processing
to dramatically reduce peak Java heap usage during bitmap comparison.

- Process bitmaps in horizontal stripes using Bitmap.createBitmap()
  sub-regions and copyPixelsToBuffer(), keeping per-stripe heap usage
  under ~1 MB instead of ~19 MB for full-image buffers
- Stripe height is dynamically calculated based on available heap memory
- Revert ByteBuffer.allocateDirect() change (no benefit on Android where
  direct buffers use VMRuntime.newNonMovableArray on the Java heap)
- Add mockBitmapCreateBitmap() test helper and update all processor tests
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