Improve the performance of your Java code
Many algorithms are expressed most concisely as tail-recursive methods. Compilers can automatically transform such methods into loops and thereby improve program performance, but this transformation is not required by the Java language specification, so not all JVMs will perform it. This means that tail-recursive methods in the Java language can result in unexpectedly large memory usage. This article demonstrates that dynamic compilation maintains the language's semantics while static compilation often doesn't. Learn why this matters and get a bit of code to help you determine whether your just-in-time (JIT) compiler can transform tail recursion on code while preserving semantics.
- Visit Site:
- Improve the performance of your Java code
- Filed in:
-
Java / Tutorials & Tips / Development
- Date Added:
- Jun 2, 2001
- Last Updated:
- Jun 2, 2001
License and Pricing Information
| Publisher site visits: | 999 |
|---|---|
| Average rating: | 0.00 |
| Total ratings: | 0 |
Publisher Info
- Author:
Other listings by this publisher
- Getting Started With XML-RPC in Perl, Part 1
- Introduction to the Darwin Information Typing Architecture (DITA) Article
- The Python Web Services Developer, Part 2
- Spinning your XML for screens of all sizes
- Web services insider, part 1: Reflections on SOAP
- Functional programming in Python
- Build your own Java-based supercomputer
- Functional programming in Python, Part 2
- Managing e-zines with JavaMail and XSLT, Part 2
- Diagnosing Java Code: The Liar View bug pattern
- Soapbox: Magic bullet or dud?
- Perl as a command-line utility
- Faster apps on a better machine
- JDE for Emacs, Java Mode, and Hilit Java
- Introducing inheritance to PropertyResourceBundles
- How to lock down your Java code
- Getting started with the FMA and Jiro
- A three-pronged solution for identifying users
- Wireless Java Programming Forum
- Introduction to WBEM and the CIM
- XML tools for Python
- Filtering tricks for your Tomcat
- xml_pickle and xml_objectify
- User interface logic in use case modeling
- Using Inline in Perl
- An introduction to XQuery
- Functional programming in Python, Part 3
- Quick Java programming with FESI
- Swing's new Spinner component
- Diagnosing Java Code: The Impostor Type bug pattern
- Decoding XML and the DTD
-
Basic XML and RDF techniques for knowledge management
- XML / Tutorials & Tips / RDF
- Building management applications with Jiro and WBEM
- Recurse, not divide, to conquer
- An introduction to neural networks
- Using XML Schema archetypes and XSLT style sheets to simplify your code
- How to use XLink with XML
- WAP builds Java applications
- Python for the PalmOS
- Your guide to weblet security
- Using XSLT for content management
- What's new in JDBC 3.0
- The Java 2 user interface
- The elegance of JAPH: Just Another Perl Hacker
- Using XLink to simplify the representation of data
- HTTP tunneling with servlets
- Long-term persistence: Serialize JavaBean component state to XML
- Web services and J2EE connectors for B2B integration
- Extending Python and Zope in C
- Genetic algorithms applied with Perl
- Diagnosing Java Code : The Orphaned Thread bug pattern
- Introducing JMS (Java Message Service)
- Threading lightly : Reducing contention
- The Jxta command shell
- EJBMaker
- Dynamic Web-based data access using JSP and JDBC technologies
- How Bridge2Java helps expand your Java code's horizons
- Working with preferences: the Preferences API Specification
- Developing and distributing Java applications for the client side
- Client-side Java programming discussion forum
- Secure communication between peers: SSL through JSSE
- JSci: An open-source alternative for Java 2D graphing
- Exploiting ThreadLocal to enhance scalability
- Diagnosing Java Code: Glass box extensibility
- Concurrent programming in the Java language
- Bridge2Java
- Basics of J2ME
- Reengineering Tool Kit for Java
- City Simulator
- Extending Ant to support interactive builds
