[
https://issues.apache.org/jira/browse/GEODE-8212?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142406#comment-17142406
]
ASF subversion and git services commented on GEODE-8212:
--------------------------------------------------------
Commit d472d12bb9d924466d67b9da1535430525a01bef in geode-native's branch
refs/heads/develop from Alberto Bustamante Reyes
[ https://gitbox.apache.org/repos/asf?p=geode-native.git;h=d472d12 ]
GEODE-8212: Reduce connections to server to get type id (#619)
- change the type of pdxTypeToTypeIdMap to unordered_map and use a custom hash
function and aequality comparator based on that hash function.
- hash field types and names to generate our own local ID for map key. Look up
based on that key before tripping to server to get a real type ID
> Change in PdxType class "<" operator impacts performance
> --------------------------------------------------------
>
> Key: GEODE-8212
> URL: https://issues.apache.org/jira/browse/GEODE-8212
> Project: Geode
> Issue Type: Improvement
> Components: native client
> Reporter: Alberto Bustamante Reyes
> Assignee: Alberto Bustamante Reyes
> Priority: Major
> Attachments: performance_after_GEODE-7694.patch
>
>
> 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:
> {noformat}
> 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
> {noformat}
> While these are the times using the old "<" operator:
> {noformat}
> 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
> {noformat}
> 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::
> {noformat}
> 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
> {noformat}
> {noformat}
> 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
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)