I'm not quite clear what you are doing here... are you upset at the host performance or the RT performance?
Why do you want to interface the host with the RT target over reflective memory instead of just using the default TCP connection exposed over the .NET interface? Typically Reflective Memory is used for its determinism, which a windows host computer does not have... so its a bit odd to pair windows + reflective memory.
If you're concerned with RT performance, I can provide some guidelines. Most of the time you can operate in chunks instead of one at a time, but you have to be very careful how you set it up or you can have very different performance. I copy pasted this from a performance oriented document:
Reflective memory setup for high performance on RT:
- Dynamic Data in Reflective Memory: Dynamic data is used to map stimulus profiles and log triggers across targets. This can take 5-20 us per iteration. If you are not using dynamic data, reduce the dynamic data size to 0.
- For communicating from NI VeriStand RT systems to NI VeriStand RT systems, use the mapping tool to make cross-target mappings between the different targets in the same system definition. Under the hood, this implicitly uses reflective memory but is done so in a way that is optimized (DMA). To prevent this implicit use from overlapping with any non NI VeriStand traffic on the bus, use the reflective memory network node (under data sharing network) in the system definition to limit the range of addresses the NI systems can use.
- For communicating from NI VeriStand RT systems to non-NI VeriStand RT systems, use the "export channels" button on the "Data Sharing/Reflective Memory" node for each target to select which channels to place onto the reflective memory bus. Under the hood, these channels will be added to the DMA block write that each NI VeriStand target is using, therefore it is high performance. Make sure to select this for each target. However, you will not know the addresses used until the system definition is compiled. To get this information, select export memory table to file on the reflective memory node (under data sharing network). The non-NI system will have to parse this text file to know what addresses to read.
- For communication to NI VeriStand RT systems from non-NI VeriStand RT systems, use explicitly defined reflective memory "data channels" under the "Data Sharing/Reflective memory" node in the system definition for each target. Here you define the data type and address of the network the NI VeriStand target will read. You should only configure data channels for each target that needs the data. For example, target 5 may only need 1/10th of all the data from the non-NI system, and target 3 may need some other 1/10. This way the NI VeriStand targets only read what they need to. Under the hood, since NI VeriStand 2011, these addresses are read explicitly one address at a time so reading a lot of addresses will be slow, but reading a few addresses scattered over a large addresses space will be fast.
Stephen B