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.
The inspiration for this post came after stumbling upon “Pig in the Python” definition in the memory management glossary.
Comparing apples to apples I found simple Java scheduling to be much more scalable, efficient, and simpler than the industry standard Quartz scheduling.
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.
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?
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.
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.
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.
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.
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.
All new features, expected features and speculations regarding the upcoming Java 9 release: the Jigsaw project, performance improvements and long awaited APIs
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.
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 ??
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.
Handling headers in SOAP messages without the hassle of SOAPHandlers
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.
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.
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...
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.
Many knows the tradeoff of using exceptions while designing an application: On one hand, using try-catch block nicely segregates between regular code and exception handling code On the other hand, using exceptions has a definite performance cost for the JVM. This week has proved to me that exception handling in designing an API is a very serious decision.
Our bread and butter is still memory leak detection, which was very clearly reminded to us when tracing down a GPU memory leak in a browser.
Using named pipes enabled me to decrypt and search of 300+ files in roughly 1.5 hours. I also avoided the space issue by never having to land a file on disk. While named pipes aren’t needed every day, they are a useful tool to have in your arsenal.
How to choose between Geolocation and Latency routing? We tested DNS configurations across multiple EC2 regions using AWS Route 53 to find out
This post is inspired by Pierre-Hugues Charbonneau’s article on how loading non-existing classes can severely hurt your performance. This brought back memories from a debugging session where the same problem surfaced a bit differently.
Performance testing still has its place. It’s awesome for existing applications when looking for changes that degrade performance, and for major application launches where the scalability absolutely has to be right the first time.