Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
While investigating a performance problem of the C++ native client, it has been observed that change in the PdxType class "<" operator introduced by GEODE-7694 impacts performance of PdxHelper::serializePdx().
Im attaching a patch with some code and a test case I have used to benchmark that method. With the current implementation in develop branch, creating just 10 instances is enough to see the difference. The calls to serializePdx take these times:
Elapsed Time (serializePdx): 32.1322 milliseconds Elapsed Time (serializePdx): 3.06044 milliseconds Elapsed Time (serializePdx): 1.58791 milliseconds Elapsed Time (serializePdx): 1.62466 milliseconds Elapsed Time (serializePdx): 1.53676 milliseconds Elapsed Time (serializePdx): 1.59278 milliseconds Elapsed Time (serializePdx): 1.82878 milliseconds Elapsed Time (serializePdx): 1.36811 milliseconds Elapsed Time (serializePdx): 1.6956 milliseconds Elapsed Time (serializePdx): 1.46873 milliseconds Elapsed Time (serializePdx): 1.53206 milliseconds
While these are the times using the old "<" operator:
Elapsed Time (serializePdx): 56.1524 milliseconds Elapsed Time (serializePdx): 0.012327 milliseconds Elapsed Time (serializePdx): 0.006325 milliseconds Elapsed Time (serializePdx): 0.005419 milliseconds Elapsed Time (serializePdx): 0.005266 milliseconds Elapsed Time (serializePdx): 0.005662 milliseconds Elapsed Time (serializePdx): 0.005407 milliseconds Elapsed Time (serializePdx): 0.005286 milliseconds Elapsed Time (serializePdx): 0.005467 milliseconds Elapsed Time (serializePdx): 0.005276 milliseconds Elapsed Time (serializePdx): 0.005298 milliseconds
And after creating 50.000 instances, these are the times for the last 10 calls with the current "<" operator and with the old one respectively::
Elapsed Time (serializePdx): 8.11767 milliseconds Elapsed Time (serializePdx): 8.15727 milliseconds Elapsed Time (serializePdx): 8.09303 milliseconds Elapsed Time (serializePdx): 7.89909 milliseconds Elapsed Time (serializePdx): 8.37956 milliseconds Elapsed Time (serializePdx): 8.21303 milliseconds Elapsed Time (serializePdx): 8.14189 milliseconds Elapsed Time (serializePdx): 8.21266 milliseconds Elapsed Time (serializePdx): 8.21683 milliseconds Elapsed Time (serializePdx): 7.78765 milliseconds
Elapsed Time (serializePdx): 0.003014 milliseconds Elapsed Time (serializePdx): 0.003 milliseconds Elapsed Time (serializePdx): 0.003084 milliseconds Elapsed Time (serializePdx): 0.003112 milliseconds Elapsed Time (serializePdx): 0.00305 milliseconds Elapsed Time (serializePdx): 0.003018 milliseconds Elapsed Time (serializePdx): 0.003029 milliseconds Elapsed Time (serializePdx): 0.003061 milliseconds Elapsed Time (serializePdx): 0.003043 milliseconds Elapsed Time (serializePdx): 0.003086 milliseconds
Attachments
Attachments
Issue Links
- links to