Javolution
From Wikipedia the free encyclopedia
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Developer(s) | Jean-Marie Dautelle |
---|---|
Stable release | 7.0.0 / July 2, 2017 |
Repository | |
Written in | Java, C++ |
Operating system | Cross-platform |
Size | 480 KB (archived) |
Type | Real-Time Library |
License | BSD |
Website | javolution |
Javolution is a real-time library aiming to make Java or Java-Like/C++ applications faster and more time predictable. Indeed, time-predictability can easily be ruined by the use of the standard library (lazy initialization, array resizing, etc.) which is not acceptable for safety-critical systems. The open source Javolution library addresses these concerns[1] for the Java platform and native applications. It provides numerous high-performance classes and utilities useful to non real-time applications as well. Such as:
- Collections[2] classes, supporting custom views,[3] closure-based iterations, map-reduce paradigm, parallel computing, etc.
- Worst-case execution time behavior documented using Realtime[4] Java annotations
- Fractal structures[5] to maintain high-performance regardless of the size of the data
- OSGi contexts[6] allowing cross cutting concerns (concurrency, logging, security, ...) to be addressed at run-time through OSGi published services without polluting the application code (separation of concerns)
- Algorithmic parallel computing support with concurrent contexts[7] and general-purpose computing on graphics processing units with compute context[8]
- Struct/Union[9] base classes for direct interfacing with native applications
- Perfometer[10] utility class to measure worst-case execution time with high precision
- XML Marshalling/unmarshalling facility[11] capable of direct serialization/deserialization of existing classes (no intermediate data structure required)
- StAX-like XML reader/writer[12] which does not require object creation (such as String) and consequently faster than standard StAX
- Simple yet powerful configuration management[13] for your application.
Since version 6.0, Javolution makes it easy to port[14] any Java source code to C++ for cross-platform native compilation. OSGi and JUnit have been ported and are included with the core C++ distribution.
All modules (Java and native) are built using maven. Javolution can be used[15] either as an OSGi bundle (preferred) or as a standalone library.
References[edit]
- ^ Fully Time Deterministic Java
- ^ javolution.util
- ^ Collection Views
- ^ Realtime Annotation
- ^ Fractal Table
- ^ OSGi Contexts
- ^ Concurrent Contexts
- ^ Compute Contexts
- ^ Struct/Union
- ^ Perfometer Utility[permanent dead link]
- ^ XML Marshalling/unmarshalling Facility
- ^ StAX-Like Readers/Writers
- ^ Javolution Configuration Management
- ^ "Javolution C++ Overview" (PDF). Archived from the original (PDF) on 2013-10-01. Retrieved 2013-08-19.
- ^ Javolution Usage Overview
External links[edit]
- Javolution website
- Fully Time Deterministic Java – AIAA Space 2007 Conference
- Validating Java for Safety-Critical Applications – AIAA Space 2005 Conference
- Turbo-Charging Java for Real-Time Applications Archived 2009-02-05 at the Wayback Machine – Java Developer Journal Article