-
Notifications
You must be signed in to change notification settings - Fork 622
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize DataDictionary #221
Conversation
Hi, Cheers, |
I didn't do a detailed review of this - but I've seen DataDictionary be a huge hog when debugging stuff, so I was glad to see work on it. I can't think that we particularly care too much about the internal data structure so given it passed all the existing tests I was happy enough. |
Hi, |
Hi @Hazines , |
Hi,
Okay thank you very much.
I wanted to ask a question on the mailing list but i didn't find how!!
Cordially.
Le ven. 12 juil. 2019 à 10:38, Christoph John <notifications@github.com> a
écrit :
… Hi @Hazines <https://github.com/Hazines> ,
this is not the correct place for such questions.
A basic introduction is even on the main page of this project
https://github.com/quickfix-j/quickfixj or here:
https://www.quickfixj.org/usermanual/2.1.0/
For further questions (after checking the documentation), please use the
mailing list:
https://sourceforge.net/projects/quickfixj/lists/quickfixj-users
Thanks,
Chris.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#221?email_source=notifications&email_token=AHTR5RWLKAPBEEAUDEXWR33P7BGJXA5CNFSM4G6STGQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZZIPHA#issuecomment-510822300>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AHTR5RUIOPXLVUWDWTDRKA3P7BGJXANCNFSM4G6STGQA>
.
|
Hi @Hazines , you can subscribe to the mailing list via the link I posted in my former comment: |
DataDictionary keeps some data in Map<IntStringPair, .V> structures. A new instance of IntStringPair is created every time to search the value in the map. When parsing market data (with a lot of repeating groups) it causes a lot of IntStringPair allocations (see the attached profiler screenshot, taken after ~1000 MarketDataSnapshotFullRefresh messages received).
Changing implementation to Map<Integer, Map<String, V>> nested maps allows to get rid of IntStringPair at all. The results are on another screenshot.