This appendix contains a list of limitations in the Jamaica virtual machine and tools.
Table F-1. JamaicaVM limitations
| Aspect | Limit |
|---|---|
| Number of Java Threads | 511 |
| Maximum Monitor Nest Count (repeated monitor enter of the same monitor in nested synchronized statements or nested calls to synchronized methods). Exceeding this value will result in throwing an java.lang.InternalError with detail message "Max. monitor nest count reached (255)" | 255 |
| Maximum Java heap size | 2GB |
| Minimum Java heap size | 64KB |
| Minimum Java heap size increment | 64KB |
| Maximum number of heap increments. The Java heap may not consist of more than this number of chunks, i.e., when dynamic heap expansion is used (max heap size is larger than initial heap size), no more than this number of increments will be performed, including the initial chunk. To avoid this limit, the heap size increment will automatically be set to a larger value when more than this number of increments would be needed to reach the maximum heap size. | 256 |
| Maximum number of memory areas (instances of javax.realtime.MemoryArea). Note that two instances are already used for HeapMemory and ImmortalMemory. | 256 |
| Maximum size of Java stack | 64MB (16777216 (=2^24) slots) |
| Maximum size of native stack | 2GB |
| Maximum number of constant UTF8 strings (names and signatures of methods, fields, classes, interfaces and contents of constant Java strings) in the global constant pool (exceeding this value will result in a larger application) | 65536 (=2^16) |
| Maximum number of constant Java strings in the global constant pool (exceeding this value will result in a larger application) | 65536 (=2^16) |
| Maximum number of name and type entries (references to different methods or fields) in the global constant pool (exceeding this value will result in a larger application) | 65536 (=2^16) |
| Maximum Java array length. Independent of the heap size, Java arrays may not have more than this number of elements. However, the array length is not restricted by the heap size increment, i.e., even a heap consisting of several increments each of which is smaller than the memory required for a Java array permits the allocation of arrays up to this length provided that the total available memory is sufficient. | 134217727 (=2^27-1) |
| Maximum number of virtual method per Java class (including inherited virtual methods) | 4095 |
| Maximum number of interface methods per Java interface (including interface methods inherited from super-interface) | 4095 |
| On posix systems where time_spec.tv_sec is a 32bit value it is not possible to wait until a time and date that is later than | Tue Jan 19 04:14:07 2038 |