Concurrency: Past and Present
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Tracking change and innovation in the enterprise software development community
Posted by Scott Delap on Jul 12, 2006 02:05 PM
Excelsior Jet, a JVM with Ahead-Of-Time compiler has been updated to verision 4.5. Jet precompiles JVM byte code to native X86 instructions. Precompilation removes the overhead of bytecode interpretation. Compiled Java code also does not contain the same information as bytecode which prevents easy decompilation. According to Excelsior's website Jet compiled applications are also often significantly smaller in size.New features included in version 4.5:
Hibernate without Database Bottlenecks
Scale Your Application without Punishing Your Database
Guide to Calculating ROI with Terracotta Open Source JVM Clustering
Why Should I Care About Terracotta?
Terracotta 2.6 - Download now for scalability without tradeoffs
I can be wrong, but I though JIT compiler had more informations and hence could produce better native code that static compilers. Feel free to debunk :-)
I can be wrong, but I though JIT compiler had more informations and hence could produce better native code that static compilers.
Feel free to debunk :-)
As usual, making the last 20% of optimizations takes 80% of resources. :) So the key word here is "could". In reality, this is only possible for long-running applications on systems with plenty of RAM and CPU time available to the JIT compiler. And, you know, applications need CPU and RAM too...
So I would say static compilers have an advantage on the desktop, where your app must load fast and work at full speed right upon startup, and especially in embedded systems, where dynamic (JIT) compilers may have no resources for doing any sophisticated optimizations.
It is also perfectly possible to collect the application execution profile during a load test and feed that profile to the static compiler on next compilation. In fact, we are working on this right now, so stay tuned.
Finally, compilation to native code has other advantages, such as protection from Java decompilers. We have customers whose pre-compiled applications do not work any faster than if run on HotSpot, but they need to protect their IP, so they bought Excelsior JET.
Dmitry Leskov
Excelsior LLC
Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.
Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.
Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.
David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.
Nick Sieger talks about the future of JRuby, Java Integration, and his work on JEE deployment tools for Ruby on Rails like Warbler.
Rustan Leino and Mike Barnett of Microsoft Research discuss the technology in Spec# and its futures.
Henrik Kniberg talks about 10 possible reasons to fail while doing Scrum and XP. Maybe the team does not have a definition of what Done means to them, or they don't know what their velocity is.
This article outlines 9 principles Marc Lammers discovered while building the world’s best field hockey team, mapping them to software development practices.
2 comments
Reply