Performance rework to eliminate excess memory allocations

Issue #58 resolved
James Powell repo owner created an issue

Significant work at using DETT to identify and eliminate memory allocations/copying, using large Arrays (1 million DBL) in messages as a test.

Comments (4)

  1. James Powell reporter

    Major change is to use “Mark as Modifier” in the parent implementations of “Send.vi”, telling compiler we wish to use the incoming Message. This has teh problem of forcing a copy in the Caller, if that wire is branched.

    One idea that would improve things is to add a Message output to the “Send.vi” method, so Sends can be chained, rather than branched.

  2. James Powell reporter

    Major success is to get Event Notifications (by label) to N-1 copies, so zero-copy for one Notification! Combined with the new EventDVRMessenger, this is actor-to-actor zero copy of large data!

  3. James Powell reporter

    Improving TCP Messengers is harder, as Flattening/Unflattening is copy expensive. Got it down to two copies for each of Flatten and Unflatten. Major problem is that Unflatten node wont work on subArrays.

  4. Log in to comment