| >> Can't you just expose the data you are reading as an external typed data array to the Dart code? That would remove any need for those methods. I work on integrating into Dart ecosysem "foreign functions interface" (ffi). External typed data is not suitable in many cases: - Does not provide physical storage address to use code (binary interop requires that) - I don't need it because it heavyweight if use it with C pointers and references - It has limit in size (specified in Dart VM on max array length) - I need malloc and typed data does not help here in any way - I access data (by physical address) allocated externally >> Did you file a bug for the slowness of your native extension? This is useless. A long time ago we already did not come to a consensus. |
Truly efficient FFI has to be part of the VM, you can't implement efficient FFI from outside.
> - I access data (by physical address) allocated externally
Do you really mean "physical address" here?
External data is created precisely to efficiently access data allocated externally, because it allows direct raw access to a given region of memory (sans bounds checking).