feat: Reduce Cytiva Biacore T200 Control memory usage with cycle streaming#1164
Merged
Conversation
…aming - Implement decode_data_streaming() generator that yields cycles one at a time - Process cycles individually instead of concatenating all DataFrames at once - Maintain backward compatibility with decode_data() wrapper - Memory usage reduced by 19.6% (134.24 MB → 107.87 MB, 84.6x → 68.0x amplification) - All tests pass with no changes to golden files This addresses memory amplification concerns identified in parser audit, where T200 Control showed 133x average amplification (agent-reported via memory_profiler). Actual measurements with tracemalloc show 84.6x on main, reduced to 68.0x with streaming.
stephenworlow
approved these changes
Apr 5, 2026
nathan-stender
added a commit
that referenced
this pull request
Apr 8, 2026
### Added - Add locale-aware timestamp parsing using Babel CLDR data (#1167) - Add global locale support for number parsing (#1165) - Reduce Cytiva Biacore T200 Control memory usage with cycle streaming (#1164) - Cytiva T200 - Implement streaming decoder to reduce memory usage by 55% (#1163) ### Fixed - Default to day-first format for invalid/unknown locales (#1168) - Use immutable copy pattern for WellItem result attachment (#1166)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Implements cycle streaming for Cytiva Biacore T200 Control parser to reduce memory usage by 19.6%.
Changes
decode_data_streaming()generator that yields cycles one at a timedecode_data()wrapper functionMemory Impact
Measurements taken with tracemalloc on
Fig.2c_NC_prongs hybridization.blr(1.59 MB test file), consistent across 3 runs.Testing
decode_data()wrapper maintains existing APIContext
This addresses memory amplification concerns identified in the parser audit. The T200 Control parser showed 133x average amplification with memory_profiler (agent-reported). Accurate measurements with tracemalloc show 84.6x on main, reduced to 68.0x with streaming.
Related to memory optimization work on other Cytiva Biacore parsers.