Probably not an issue you run into much with high speed trading, but when you are running multiple vmware/virtualbox instances and each is running a glassfish app ... PermGen taming becomes a serious concern.
You still have to watch how many objects you create. This article looks at a benchmark passing events over TCP/IP at 4 billion events per minute using the net.openhft.chronicle.wire.channel package in Chronicle Wire and why we still avoid object allocations.. One of the key optimisations is creating almost no garbage. Allocation is a very cheap operation and collection of very short-lived objects is also very cheap. Does this really make a difference? What difference does one small object per event (44 bytes) make to the performance in a throughput test where GC pauses are amortised? While allocation is as efficient as possible, it doesn’t avoid the memory pressure on the L1/L2 caches of your CPUs and when many cores are busy, they are contending for memory in the shared L3 cache. Results Benchmark on a Ryzen 5950X with Ubuntu 22.10. JVM Vendor, Version No objects Throughput, Average Latency* One object per event Throughput, Average Latency* Azul Zulu 1.8.0_322 60.6 ...
A Unique Identifier can be very useful for tracing. Those ids are even more useful when they contain a high-resolution timestamp. Not only do they record the time of an event, but if unique can help trace events as they pass through the system. Such unique timestamps however can be expensive depending on how they are implemented. This post explores a lightweight means of producing a unique, monotonically increasing system-wide nano-second resolution timestamp available in our open-source library. Uses for Unique Identifiers Unique identifiers can be useful to associate with a piece of information so that information can be referred to later unambiguously. This could be an event, a request, an order id, or a customer id. They can naturally be used as a primary key in a database or key/value store to retrieve that information later. One of the challenges of generating these identifiers is avoiding creating duplicates while not having an increasing cost. You could ...
Overview Chronicle Software is about simplifying fast data. It is a suite of libraries to make it easier to write, monitor and tune data processing systems where performance and scalability are concerned. But its free, how do you make money, through support? We offer premium support . However, we often hear from users for the first time about a year after they have it in production. Most users find they can support the software themselves. It is only after a year or so, they have questions or concerns about where to take the product next. In many cases, it is to a problem we have already solved and they just need to upgrade their software or use a new module we have added. As we don't know who is using most of our software, we can't advise them on how best to use our software and what updates or enhancements they would benefit from. We need users to contact us and ask questions. We have a free forum , and we respond to 50% of questions in 2 hours...
Happy New Year to you too.
ReplyDeleteIt has been a pleasure to read your blog during this year. I've learnt a lot.
Please, keep on writting ;)
Hi Peter,
ReplyDeleteThanks for a great Year ful of interesting posts!
Keep up the good work!
Thanks,
Markus
keep up !!!
ReplyDeleteThanks Peter. Happy New Year to you also and all the best for a prosperous year of blogging ahead
ReplyDeleteHappy New Year! Keep up the good work!
ReplyDeleteAlso, if you need a topic... PermGen profiling :)
Probably not an issue you run into much with high speed trading, but when you are running multiple vmware/virtualbox instances and each is running a glassfish app ... PermGen taming becomes a serious concern.