I am curious to know for those of you that have developed in 64-bit with the PI SDK if the different operations (data retrieval, point creation, event pipes) are slower with the 64-bit than the 32-bit one.
I personally have not.
Have you experienced decreased performance? If so, what operations where you performing (and in what context) ?
Not myself. Apparently, a customer (from OSIsoft technical support) is experiencing some decreased performance when performing standard read and write operations on a PI Server with the 64-bit version of PI SDK compare to the same code in 32-bit.
He is using a class library (.NET) called from within an ASP.NET page running on an IIS Server. The class library is using a MTA model.
The SDK methods RecordedValues, RecordedValuesByCount, InterpolatedValues2, InterpolatedValues, TimedValues, Summaries2, Summaries are close to about a magnitude slower in 64 bits as they are in 32 bits. I wrote some visual basic scripts that pull summary data using the Summaries2 method that highlight the disparity.
Using the randomly generated tags BA:CONC.1, BA:LEVEL.1, and BA:TEMP.1 for 1 day of summary data at 1 minute intervals returns the following timing.
BA:CONC.1 32 bits = .04 seconds, 64 bits = .31 seconds
BA:LEVEL.1 32 bits = .05 seconds, 64 bits = .31 seconds
BA:TEMP.1 32 bits = .05 seconds, 64 bits = .31 seconds
The time differences are more indicative of the difference between MTA and STA rather than 32 vs. 64 bits. Are both test run using the same threading model?
Yes, both use the same threading model. At StatSoft (http://www.statsoft.com) we have a 64 bit version and 32 bit version of our STATISTICA product line. The STATISTICA product has a PI server interface that pulls historical and snapshot data using the COM objects. These same COM objects are also available in the STATISTICA Visual Basic environment. I have experienced this timing problem in native C++ as well as the Visual Basic environment.
This discussion thread is continuing over here.
Retrieving data ...