2.2.7 brings dramatic performance improvements to digital capture processing and digital rendering! Our aim was to get the software to run smoothly when recording digital signals near the limit of the devices’ performance. Digital data processing is now 10x faster, meaning fewer “backlogged” captures!
We have a new changelog page! check it out here
Alpha Mailing List
Join the Alpha Users Mailing List to be notified about the next release!
Reminder: releases now include a new interface for writing high-level protocol decoders in Python. Check out the documentation here: github.com/saleae/logic2-examples
- Timing markers now snap to digital transitions again
- saved calibration files are now loaded properly when offline
- analyzer export now respects the currently selected display radix, instead of always exportin ASCII.
- Custom protocol analyzers: if no results are added
GenerateFrameTabularText, the frame is now hidden from the protocol results list view
- Traces color now update immediately on change
Behind the scenes:
- detailed performance instrumentation
- significantly improved UI performance in live mode (5-10x)
- dramatically improved processing performance of digital data (10x)
- dramatically improved rendering performance of digital data (3x)
- migrated analyzer management to a better state management system
- refactored processing state updates from the data processing system
- Custom protocol analyzers that have a “FilePath” or “FolderPath” TextSetting now have UI to select files or folders
- press Ctrl+0 to reset text zoom (ctrl +/- zooms text size)
- Cmd/ctrl+click on a decoded protocol result opens the analyzer sidebar tab and scrolls to that result
There is a LOT more in here behind the scenes. We’ve spent the last week focused on improving digital processing and rendering performance. Our goal - to ensure the software can run in real-time on as many systems as possible while recording digital channels near the worst-case data throughput. And we’ve done it! At least on our machines Your mileage may vary. Quick note - we haven’t dived into analyzer processing performance yet, so you will still see considerable slowdown when recording dense protocol data. We’ll get to that soon!
For reference, our test involves recording 8 channels at 250 MSPS, recording 115200 baud serial, I2C, and 12 MHz SPI in the same capture.
We do have a fairly large known issue in the application we’re working on next. The capture process leaks memory pretty badly. If in-app the reported memory usage is 1 GB, the actual memory usage might be 5x higher. In addition to hurting performance, this also causes a typical “soft crash” when trying to restart a capture or close a tab, where the memory deletion takes so long the UI times out and the processing engine stops responding. This is currently our highest priority, and it’s responsible for the majority of front-end “soft crashes”, and mainly affects customers pushing the performance limits of the devices.
We can’t stress the extent of the performance improvements we’ve accomplished over the last week or so. I want to say thanks to Ryan, John, and Rani for their efforts. The digital processing performance, one of the main bottlenecks in “real time” mode in the software, is now over 10x faster in single-threaded tests! Digital rendering if several times faster than it was before, and we’ve managed to improve the scheduling efficiency to get more work done per second & per CPU core. I can’t wait to bring these improvements to protocol analysis, digital triggering, and analog processing & rendering.
If you would like to test it out, try connecting your device to high speed digital signals - be sure to keep them at least 4 times slower than the sample rate! Then record near the worst case - (6 digital channels @ 500 MSPS, 12 digital channels @ 250 MSPS, 16 channels at 125 MSPS.) See how long the software can run in “looping” mode before you see the dreaded “backlog (X) s.” on the capture progress window. Let us know how long you’re able to record before seeing this! Internally, we’ve seen it run over 20 minutes without backlogging.