BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage JVM Content on InfoQ

  • JSR 292 and the Multi-lingual JVM

    Java 7 is looking to improve support for dynamic languages using the Java Virtual Machine for their runtime environment. John Rose has been leading a project to explore some options, and JSR 292 will standardise some of this work for Java 7. InfoQ takes a look at the problems JSR 292 solves, and talks to JRuby lead Charles Nutter to find out more about InvokeDynamic in practice.

  • Memory Barriers and JVM Concurrency

    Memory barriers, or fences, are a set of processor instructions used to apply ordering limitations on memory operations. This article explains the impact memory barriers have on the determinism of multi-threaded programs. We'll look at how memory barriers relate to JVM concurrency constructs such as volatile, synchronized and atomic conditionals.

  • Service Dynamics: the lazy man's way

    This article describes "the hardest topic in OSGi, how to deal with service dynamics," based on personal experience. Two factors, concurrency and direct service references, make the problem "fiendishly hard." An import and an export policy should form a comprehensive doctrine for dealing with service dynamics and the article explores two export policies with their corresponding doctrines.

  • Exploring LISP on the JVM

    One of the most exciting things in the Java world right now is the work being done to get other programming languages to run on the virtual machine. There is a lot of buzz around JRuby, Groovy, Scala, and the JavaScript engine Rhino. But why stop there? If you really want to take a step outside the mainstream and dive into something completely different from Java, Lisp is a great option.

  • Do Java 6 threading optimizations actually work? - Part II

    Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.

  • Do Java 6 threading optimizations actually work?

    Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.

  • Real-Time Java for the Enterprise

    Simon Ritter explains the vision and capabilities of the Real-Time Java specification (RTSJ), if your Java app really, really must respond within a certain time regardless of what the garbage collector does, RTSJ is now a possibility rather than a probability.

  • The Box: A Shortcut to finding Performance Bottlenecks

    Finding performance bottlenecks can be a difficult task and it can get even more difficult as our applications grow in size. The Box is a methodology tool that focuses us efforts to improve performance.If you want to be consistent and predictable, getting rid of the guessing is a must.

  • Introduction to OpenTerracotta

    OpenTerracotta is an open source enterprise-class JVM clustering solution that can take multi-threaded single-JVM apps and have them run across multiple JVMs with no code changes. Orion Letizi goes super-indepth on Terracotta and how it works, explaining how to do session replication, distributed caching, master/worker, and more.

  • In-process Interoperability

    The two most popular managed environments (the JVM and the CLR) are in fact, nothing more than a set of shared libraries, each providing services to executing code such as memory management, thread management, code compilation (JIT), etc. Using both the JVM and the CLR inside the same operating system process is easy, since any process is capable of loading just about any shared library.

BT