DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
What's in store for DevOps in 2023? Hear from the experts in our "DZone 2023 Preview: DevOps Edition" on Fri, Jan 27!
Save your seat
  1. DZone
  2. Coding
  3. Java
  4. Performance Java Training

Performance Java Training

Peter Lawrey user avatar by
Peter Lawrey
·
Feb. 20, 13 · Interview
Like (0)
Save
Tweet
Share
9.78K Views

Join the DZone community and get the full member experience.

Join For Free

 
I am looking to provide "Master Class" Java training for developers of high throughput and low latency systems based on my experience in designing and implementing trading systems for hedge funds.

As this will be my first course, I am looking for feedback as to what to include and what to drop. I am concerned this is an overwhelming amount of information to cover in a week which will make it difficult to cover each topic in much depth.

You can contact me on peter.lawrey (a) higherfrequencytrading.com if you are interested in the course. This is in person training in English.  My first session will be in London, but I would consider other cities if there is enough interest.

Overview
The training assumes you are familiar with all the standard features of Java and know most of the topics covered by advanced Java programming courses. i.e. everything covered in most advanced books.

The scope of the training is designing, developing, testing and tuning performance Java applications.  The three areas covered are low latency, high throughput and big data techniques. Both common libraries in these spaces and how to implement simple examples of your own are covered. The course is 30% design and theory and 70% practical.

Developers should have at least five years solid, hands on Core Java coding experience. e.g. you should be able to write multi-threaded code on paper which has a good chance of compiling.

Day One

A brief coverage of advanced programming techniques from a performance point of view.  This is intended to cover in a day all the functionality you might expect to cover in a week of an advanced training course. This refresher assumes you know at least 80% of this material already. This is the foundation of the the following days sessions

These topics are discussed from a performance point of view.

   •   improvements in Java 5.0 to 7
   •   implementing the Actor pattern using the High Level Concurrency library.
   •   working with Streams, Reader/Writers and Channels.
   •   working with compressed stream in files and over sockets.
   •   using Blocking NIO.
   •   Reflection and MethodHandles.
   •   Review design patterns.

Day Two

Writing micro-benchmarks and measuring the performance of systems such as
simple network services. This will look at latency distributions, throughputs and degrees of concurrency.

Tools introduces: CPU and memory profilers. VisualVM and commercial. Libraries introduced: Caliper, Java Thread Affinity

Day Three
Designing and writing performance distributed systems.

Libraries introduced: ZeroMQ, FastMPJ, Java Chronicle.

Day Four
Lock free multi threading, ultra low garbage and off heap coding.


Libraries introduced: Trove, Javolution Fast collections, Disruptor, Under the bonnet of the Java Concurrency library.

Day Five
Performance Parsing and Serialization/Deserialization techniques.  Big Memory techniques.

   •   Using busy waiting for resources and shared data.
   •   Using intrinsics which are faster than JNI.
   •   Recycling instead of discarding data, and when to do it. What are the disadvantages?
   •   Using ByteBuffers and allocating native space.
   •   Externalizable, ObjectInput/ObjectOutput
   •   Custom serialization
   •   JSon, XML, text and binary parsers.

Libraries introduced: Javolution Struct, ByteBuffer, Unsafe, memory mapped files.


Java (programming language)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • ChatGPT vs. GPT3: The Ultimate Comparison
  • Explaining: MVP vs. PoC vs. Prototype
  • Memory Debugging: A Deep Level of Insight
  • How to Perform Accessibility Testing of Websites and Web Apps

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: