| >> so I don't really understand what bothers you about these lists. This approach does not allow me to use annotations (or other way) for specifying that my own "native" methods in "native extension" are required some attention. You use for such attention these lists. Eg. I have the following methods (via macro defs) in my "native extension": ========================= UNSAFE_READ_INT(8, int8_t)
UNSAFE_READ_INT(16, int16_t)
UNSAFE_READ_INT(32, int32_t)
UNSAFE_READ_INT(64, int64_t)
// Skipped
UNSAFE_READ_FLOAT(32, float)
UNSAFE_READ_FLOAT(64, double)
// Skipped
=========================These methods are very fast (in C++) but in fact Dart VM executes them (native methods) very SLOOOOOOOOOOOWWWWWWWWWWWW... See my question on stack overflow: =========================
Why native wrapped functions in Dart are such heavyweight in comparison with “DEFINE NATIVE ENTRY” functions that are very lightweight? http://stackoverflow.com/questions/21363429/why-native-wrapp...
========================= - Dart developers does not like annotation - Dart VM does not uses annotation - Dart VM does not uses type annotation - Dart VM executes custom "native (which in fact are very fast)" methods very slow This is what is means for me that Dart VM is not a very well balanced for high performance. P.S. This is why "I bothers you about these lists". Because they are in some cases the only way to improve performance. |
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.
> - Dart developers does not like annotation
I like annotations!
> - Dart VM executes custom "native (which in fact are very fast)" methods very slow
This concern is very valid: it is true that transition between Dart code and native methods is too heavyweight and as a developer you have no way to fix it yourself. We had plans to fix it eventually - but they never been very high on the list of things.
Did you file a bug for the slowness of your native extension?