JVMs, Compilers, and Time with Cliff Click

“When you start writing a program, there’s always an implicit time requirement. “Sometimes it’s pretty loose and there’s no real rush for getting a job done. But if its a hard real time system controlling a motor controller or a pace maker… or a flight system on an airplane, these have very strict requirements on time. But a programming language like Java and actually, C and Fortran, just don’t mention

Java 9 series: Segmented Code Cache

This week we’re looking at JEP 197: Segmented Code Cache as part of the Java 9 series: looking at some of the JDK Enhancement Proposals (JEPS) hoping to make their way into Java 9. Last week we looked at multi-release JAR files: MRJARs. This week, we look at the proposal to spilt out the code cache so there is a code cache per top-level type of compiled code, as “the organization and

Presentation – Extreme Profiling: Digging Into Hotspots

Extreme Profiling: Digging Into Hotspots by Nitsan Wakart Hold onto your hats! On bunny ears, if you like. Diving down the rabbit hole we will explore a host of advanced tools for analysing performance hotspots in Java code: The Code is a Lie: why the line of code indicator is broken JMH perfasm: looking at microbenchmarks under the microscope JITWatch: digging into compilation process and stages Solaris Studio: Not just

RxJava 2.0.0 General Availability Release

A few weeks ago, the release of RxJava 2.0.0 was announced. It has been completely written from scratch, around the Reactive Streams specification. RxJava 2.0.0 final is out! Thanks for all the feedback and contributions over the last 18 months! https://t.co/xZDxrA9Qiw — RxJava (@RxJava) October 29, 2016 Backpressure We discussed the Reactive Streams initiative in Java 9 series: Concurrency Updates. It is an initiative that provides a standard for asynchronous stream processing with non-blocking backpressure.

Native Ahead-of-Time Compilation in Java

A new official proposal to add ahead of time compilation for the JVM has been submitted as JEP 295. As the name suggest the idea is to add compilation to native code prior to launching the virtual machine. The main goal of the proposal is to improve the start-up time of Java applications, with as little as possible impact on overall performance. How would this work in practice ? This

Setting up Scala on Android

This article was originally published over at the Codurance blog.   Scala can be used to build Android applications, as an alternative to Java or Kotlin. Unlike them, setting up an Android project in Scala with SBT is not straightforward, and can give us some headaches to get it right. To show how this can be done, we are going to create new project template using the Android SDK Plugin

Py4J: Building bridges between Python and Java

Last week, Py4J version 0.10.4 was released. Py4J is a bidirectional bridge between Python and Java. It enables Python programs running in a Python interpreter to dynamically access Java objects in a JVM. Py4J Version 0.10.4 of Py4J allows you to set a value in a Java array that will convert to the Python type, so the value types don’t have to exactly match. A GatewayServer instance allows Python programs to communicate with

Just enough code: hacking the JDK

This is a quick glance at hacking the JDK. This is ‘hacking’ in the lightest possible sense. We will look at JDK 9. Monkey patching You can ‘monkey patch’ in Ruby – sneakily extend or modify code, including Ruby source code. For example, this is what you would expect when creating a new String: String.new(“here is a new String”) => “here is a new String” But thanks to the ability in Ruby to

Presentation – Busy Java Developer’s Guide to Hacking in Java

Busy Java Developer’s Guide to Hacking in Java Ever since its 1.1 release, the Java Virtual Machine steadily becomes a more and more “hackable” (configurable, pluggable, customizable, choose your own adjective here) platform for Java developers, yet few, if any, Java developers take advantage of it. Time to take the kid gloves off, crack open the platform, and see what’s there. Time to play. In this presentation, we’ll examine several

Competing for resources: The JVM, Kubernetes and Docker

At Devoxx UK 2016 Arun Gupta interviewed Christopher Batey, a freelance developer in London, for Voxxed. They talked about the JVM, Kubernetes and Docker competing for resources, multitenany and its issues before Christoper’s Devoxx presentation. You’re giving a talk tomorrow on running JVMs inside containers. Do you mean Linux containers or do you mean Docker? At the moment, it is Docker. My main role at the moment is building a