Millions Quotes Per Second in Pure Java
Writing software that works under high load is an art that requires a lot of skill, regardless of the programming technology that is being used.
Java platform is an ideal choice to create big and complex software systems because Java is the most popular programming language, it has the largest talent pool, and its features, tools, libraries, and community around it provides for the highest development productivity.
There is a great deal of the criticism about Java performance that you can find on the web. But, as numerous academy researches had shown, the performance of the software code strongly depends on the skills of the authors who had implemented the code and much less it depends on the technology that was used for its implementation.
Of course, each technology has its strong and weak points.
For example, image and video processing, numerical simulations, physics and other easily vectorizable floating point computations are especially performance-sensitive and get a significant performance boost from being implemented at the lowest possible level down to assembly.
There is a lot economic sense in those areas to pick more low-level, less productive and less developer-friendly implementation technology.
However, it turns out that modern Java VMs achieve the same performance as native languages like C and C++ for many real-life business tasks that require high performance, so you can have a cake and eat it, too.
Most of the techniques, approaches, and patterns that are being used in the highly loaded software systems follow from the common sense and from the deep understanding of the modern server-side CPU architectures. However, certain high-level features of the Java platform that make it easier and more productive for software developers, make it also harder to write high-performance code.
Developers need to understand the way in which Java objects are laid out in memory, the algorithm of the garbage collector, the peculiarities of the just-in-time compiler in the JVM, and other details in order to take them into account during the design of their software to achieve the high performance of the resulting code.
The talk that will be made during Oracle JavaOne 2013 conference will guide the listener
It has proved that careful attention to details and mindful implementation allows one to produce a pure Java system whose functional and non-functional parameters are on par or exceed the more traditional approaches, while making it easy to integrate the resulting solution with enterprise financial systems which are written mostly in Java.
The similar talk was already presented during a recent Java User Group event in St. Petersburg, Russia.
The video from the talk (in Russian) can be found here while the slides (in English) are here .
Roman Elizarov
Board Member, Projects Coordinator
Roman graduated from St. Petersburg State University of Information Technologies, Mechanics and Optics, the department of Computer Technologies with Master of Science in Mathematics degree. Participated in ACM International Collegiate Programming Contest as a member of ITMO team. Chairman of the jury of the North-Eastern European Regional Contest (NEERC). Honored with the Prize of President of Russian Federation in the 2003 educational nomination. Is the Board Member since the company foundation in 2002. As Project Coordinator, he is responsible for Devexperts projects connected with options trading for retail users and for general projects coordination.
Comments
Dear Roman,
Thanks a lot for everything you have done for all us the developers around the world. I am really needing a very good explained tutorial to integrate dx-sync to a Magnolia CMS Community instance. I have been following this one, but I am lost when it says something about the maven project that I need to have. I would really appreciate a “fool proof” tuto that you can provide me with.
Thanks in advance !!