Worth pointing out that Lucene/Solr, the biggest open source player, is also Java!
* You can only allocate on-heap arrays of 2 billion items.
* On-heap arrays have a massive size overhead in terms of GC book-keeping.
* You can only allocate off-heap memory map 2 Gb at a time.
* This also goes for memory mapped areas.
* You have no control over the lifecycle of mapped memory and off-heap memory. They get cleared if and when the GC feels like it.
* You have no madvise capabilities
* The language barely acknowledges unsigned types
* You can only allocate on-heap arrays of 2 billion items.
* On-heap arrays have a massive size overhead in terms of GC book-keeping.
* You can only allocate off-heap memory map 2 Gb at a time.
* This also goes for memory mapped areas.
* You have no control over the lifecycle of mapped memory and off-heap memory. They get cleared if and when the GC feels like it.
* You have no madvise capabilities
* The language barely acknowledges unsigned types