DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

ValueRangeGet very slow in 10.1 and 10.2

Dear Forum!
 
I have another problem with ValueRangeGet, used like this

ITODataSheetPtr pITODatasheetT;

pITODatasheetT.CreateInstance(

"DIAdem.ToDataSheet", NULL, CLSCTX_INPROC_SERVER);

pITODatasheetT->ValueRangeGet(start, vArg1, stop, vArg2, &vArray);

with 10.0 it is fast enough, but with 10.1 and 10.2, it takes like 4-5 seconds for 10000 values (parameters e.g. start =1 vArg1 = 7 stop = 10000 vArg2 = 7 vArray = uninitialized). From what I can see, it is just this one call which is taking so long (using a debugger). The problem occurs without a debugger as well.

 

Any ideas? I suppose this always was the fastest way to get data into a GPI-Dll from DIAdem.

Best regards

0 Kudos
Message 1 of 8
(4,794 Views)

Dear Diadev,

in GPI programming it also exists a similar function for set channelvalues (scalar, array...) - these direct use is faster and without errors. Do you know that functions or can try it ?

We need some time to test your code access via C - so please try that way and give me feedback...

Best Regards

AE Munich (Germany)

0 Kudos
Message 2 of 8
(4,748 Views)
Hi!

Thx a lot for your reply!

Actually, I try to get values, not set them. I know there are GPI functions (like lpdChnG) for this, unfortunately, those can only be used to get/set one single values of a channel at the one time. So actually, the Valuerangeget function should be a lot faster (in my imagination), since you only have one function call instead of 10000.

Best regards,
diadev
0 Kudos
Message 3 of 8
(4,746 Views)

Hello diadev!

lpdChnG is astonishing fast! Give it a try.

I made no benchmark, because I don't like to open an OLE interface from inside a GPI DLL.

Matthias

Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 4 of 8
(4,741 Views)
Actually, you are right, I made a benchmark comparing the 2 functions (after I had to use the GPI function again, since the other stopped working), and found, if I remember correctly, that the GPI function needs around 40s for 100M points, the OLE funciton needs around 50s (that is including HD-I/O and post-processing time).

I was surprised..
0 Kudos
Message 5 of 8
(4,734 Views)
Any news on this one?
 
Now I have to use this to get values from a non-GPI .dll, which just connects via automation.
 
So: big problem, yet again. The call to ValueRangeGet is just running incredibly slow.
 
Maybe someone needs more information?
0 Kudos
Message 6 of 8
(4,400 Views)

Hi diadev,

I chatted with R&D about this, and they said this was first reported a while back and was actually fixed in DIAdem 10.2.1.  Try the free upgrade and see if the performance of that functions improves.

Brad Turpin
DIAdem Product Support Engineer
National Instruments

0 Kudos
Message 7 of 8
(4,358 Views)

That is great news!

I had installed 10.2SP1 a while ago but hadn't come around to testing it yet.

Just made a comparison:

10.2SP1 getting 1M values (and processing them): 1 second

10.1 (and the same with 10.2 I think) for the same task: over a minute right now, and program still non responsive..

Thanks a lot for the info!

0 Kudos
Message 8 of 8
(4,354 Views)