Performance Zone is brought to you in partnership with:
  • submit to reddit
Pierre-yves Saumont09/30/14
3134 views
0 replies

Do it in Java 8: Automatic memoization

Memoization is a technique used to speed up functions. Memoization may be done manually. It may also be done automatically. We can find many examples of automatic memoization on Internet. In this article, I will show how Java 8 makes it very easy to memoize functions.

Bozhidar Bozhanov09/29/14
4999 views
0 replies

Load-Testing Guidelines

Load-testing is not trivial. It’s often not just about downloading JMeter or Gatling, recording some scenarios and then running them. It’s good to be reminded of some things that can potentially waste time.

Dmitriy Setrakyan09/29/14
1877 views
0 replies

One-Phase-Commit: Fast Transactions For In-Memory Caches

By ensuring that all objects participating in a transaction are mapped to the same logical partition, we can remove the whole "prepare" phase from the distributed commit protocol, thus converting the standard 2-Phase-Commit into very light weight 1-Phase-Commit transactions.

Yannick Majoros09/27/14
5193 views
5 replies

Java 8 Optional - Avoid Null and NullPointerException Altogether - and Keep It Pretty

There have been a couple of articles on null, NPE's and how to avoid them. They make some point, but could stress the easy, safe, beautiful aspects of Java 8's Optional. This article shows some way of dealing with optional values, without additional utility code.

Rick Delgado09/25/14
2284 views
0 replies

A Short History of Computer Security Threats

Ever since people first connected their computers to the Internet, there have been people hacking into those computers, and these attacks have become more sophisticated over the years.

Miroslav Kopecky09/24/14
2307 views
0 replies

Scala Spring 4 MVC without Web.XML configuration with static resources handling

This blog post is fully focused on Scala and how to use it for Spring 4 based JavaEE application development.

A. N. M. Bazlur...09/22/14
9837 views
1 replies

How Java Executes and Performs Better

C/C++ is generally regarded as providing better performance than Java does. However, appearances are deceiving; the JVM is a very intelligent environment and the JIT an intelligence compiler.

Nikita Salnikov...09/20/14
3627 views
0 replies

Garbage Collection: Increasing the Throughput

The inspiration for this post came after stumbling upon “Pig in the Python” definition in the memory management glossary.

Adiel Isaacs09/19/14
1553 views
0 replies

Java Scheduling OR Quartz

Comparing apples to apples I found simple Java scheduling to be much more scalable, efficient, and simpler than the industry standard Quartz scheduling.

Jim Hirschauer09/19/14
3516 views
0 replies

Top 5 Mobile APM Myths: Myths 1 & 2

There is a lot of confusion in the market today. So in this blog post, I’d like to dispel some key myths around mobile apps. And how, with the right mAPM tool, you can nail your mobile app experience — both interactivity-wise and performance-wise — and thereby win the market.

Josh Begleiter09/18/14
6884 views
1 replies

Why I'm Afraid of Systemd

Over the last two months or so it’s become apparent that systemd is taking over the Linux world. Many have expressed their reservations about systemd (including Linus Torvalds himself). Is systemd a reasonable alternative to sysvinit; are there favorable alternatives to systemd?

Mitch Pronschinske09/17/14
16437 views
14 replies

The Greatest Programmers Who Ever Lived

I've seen a few of these types of posts that rank the greatest programmers throughout history, and in many of these posts I often see a lot of comments that disagree more vehemently than your average programming post's comments.

Yuexiang Zhang09/16/14
1666 views
0 replies

Static File Best Practices on Nginx-Clojure

Nginx-Clojure make it possible to write HTTP services by Clojure/Java/Groovy on Nginx which is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. All benefits from Nginx can be used together with Nginx-Clojure. This article will discuss static file best practices on Nginx-Clojure.

Ariya Hidayat09/12/14
552 views
0 replies

CPU Feature Detection

With so many great cross-platform libraries out there, there is hardly any need to reinvent the wheel. In many cases, it is even possible to extract a portion of a sophisticated multi-platform application code to be reused in a different application. In this example, a basic CPU detection class from Chromium C++ code is built into a simple command-line tool.

Peter Lawrey09/12/14
3463 views
1 replies

An Inconvenient Latency

Vendors typically publish numbers they are happy with, and avoid telling you about a product's weaknesses. However, behind the numbers is a dirty secret if you know where to look.

Andrew Pielage09/12/14
4527 views
0 replies

Alternative Logging Frameworks for Application Servers: WebLogic

Welcome to the second in the blog series of using alternative logging frameworks with application servers. This entry will focus on WebLogic, specifically 12c, and configuring it to use Log4j and SLF4J with Logback.

Chen Harel09/11/14
13207 views
0 replies

Java 9: The Ultimate Feature List

All new features, expected features and speculations regarding the upcoming Java 9 release: the Jigsaw project, performance improvements and long awaited APIs

Chen Harel09/10/14
3105 views
0 replies

Garbage Collectors - Serial vs. Parallel vs. CMS vs. G1 (and what's new in Java 8)

Did you know there are actually 4 different Garbage Collectors in Java? In this article we'll explain the difference between them, how you can choose the right one - and what can happen if you make the wrong choice.

Peter Zaitsev09/09/14
2122 views
0 replies

Using Sysbench 0.5 for Performing MySQL Benchmarks

Sysbench lets you stress many of the fundamental components of your hardware and infrastructure, such as your disk subsystem, along with your CPUs and memory. An additional option exists that is designed to perform synthetic stress testing of MySQL, and I was surprised when I didn’t see it in the above list on version 0.5, as it used to show up as “oltp – OLTP test”. What happened to –test=oltp ??

Nikita Salnikov...09/08/14
1793 views
0 replies

Memory Leaks – Measuring Frequency and Severity

Knowing that you have roughly one in three chances of having a heap memory leak in your application, lets see whether you should be worried about the leaks at all.

Pieter van der Meer09/08/14
3742 views
0 replies

Using JAXB and JAX-WS for service with custom headers

Handling headers in SOAP messages without the hassle of SOAPHandlers

Aleksey Novik09/08/14
3413 views
0 replies

Jar Hell made Easy - Demystifying the Classpath

Some of the hardest problems a Java Developer has to face are classpath errors: ClassNotFoundException, Jar Hell, Xerces Hell, etc. Let's go through the root causes and see how a minimal tool (JHades) can help.

Pierre-yves Saumont09/05/14
8285 views
0 replies

Do it in Java 8: recursive and corecursive Fibonacci

Calculating the Fibonacci suite is one of the ubiquitous examples we can find on the Internet. Java 8 offers us new possibility to solve this problem using recursion or corecursion.

Geoffrey De Smet09/05/14
525 views
0 replies

Vehicle routing with real road distances

In the real world, vehicles in a Vehicle Routing Problem (VRP) have to follow the roads: they can’t travel in a straight line from customer to customer. Most VRP research papers and demo’s happily ignore this implementation detail...

Michael Mccandless09/04/14
3606 views
0 replies

Scoring tennis using finite-state automata

For some reason, the scoring system for tennis is very strange. Fortunately, the convoluted logic is easy to express as a finite-state automaton (FSA). If you build this Automaton in Lucene and minimize it, you'll discover that there are some wasted states! This means 20 states is overkill when deciding who won the game.