Skip to content

Conversation

@Jeongyong-park
Copy link

Summary

This PR introduces streaming I/O support to overcome Java's 2GB array limit when processing large TIFF files.
The change maintains backward compatibility and improves performance and memory efficiency.

Key Changes

  • Added streaming read/write support using FileChannel
  • Automatic streaming mode for files >100MB
  • Manual streaming API: readTiffStreaming, writeTiffStreaming
  • Improved resource management with AutoCloseable

Performance

  • 5–8x faster processing on large files (64ms → 8ms in benchmarks)
  • Constant memory usage regardless of file size

Testing

  • Large file (>3GB) processing validation
  • Performance and memory comparison (streaming vs memory mode)
  • Metadata consistency checks
  • Auto-detection threshold tests

Compatibility

  • No breaking API changes
  • Existing code runs without modification
  • Improved exception handling and resource cleanup

@Jeongyong-park Jeongyong-park changed the base branch from master to develop September 15, 2025 02:24
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