JGraphT
描述:
JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:
directed and undirected graphs.
graphs with weighted / unweighted / labeled or any user-defined edges.
various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
listenable graphs - allow external listeners to track modification events.
subgraphs graphs that are auto-updating subgraph views on other graphs.
all compositions of above graphs.
Although powerful, JGraphT is designed to be simple and type-safe (via Java generics). For example, graph vertices can be of any objects. You can create graphs based on: Strings, URLs, XML documents, etc; you can even create graphs of graphs! This code example shows how.
Other features offered by JGraphT:
graph visualization using the JGraphX library
complete source code included, under the terms of the GNU Lesser General Public License and the EPL as well via dual licensing).
comprehensive Javadocs.
easy extensibility.
Apache Commons
Chonicle Map
主页:https://chronicle.software/products/map/
描述:
Chronicle Map is a super-fast, in-memory, non-blocking, key-value store, designed for low-latency, and/or multi-process applications such as trading and financial market applications. See Features doc for more information.
The size of a Chronicle Map is not limited by memory (RAM), but rather by the available disk capacity.
Chronicle Map is used in production around the world for:
real-time trading systems. Chronicle Map provides in-memory access speeds, and supports ultra-low garbage collection. Chronicle Map can support the most demanding of applications.
highly concurrent systems. Chronicle Map supports multiple readers and writers, distributed across multiple machines.
Chronicle Queue
主页:https://chronicle.software/products/queue/
描述:This memory mapped file is also used for exceptionally fast interprocess communication (IPC) without affecting your system performance. This is especially useful when there is a need to transfer large amounts of data, its ideal for transferring data between processes very quickly on the same server or across the network. There is no Garbage Collection (GC) as everything is done off heap.
Chronicle uses a memory mapped file to continuously journal messages, chronicles file-based storage will slowly grow in size as more data is written to the queue, the size of the queue can exceed your available memory, you are only constrained by the amount of disk space you have on your server. Chronicle writes data directly into off-heap memory which is shared between java processes on the same server.
Chronicle is very fast, it is able to write and read a message in just two microseconds with no garbage. Typically at the end of each day, you archive the queue and start the next day with a fresh empty queue.