Błąd JVM Java „zbyt wiele stałych”
Tworzę aplikację, która generuje i kompiluje klasy w czasie wykonywania. To czasami tworzy ogromne ilości wygenerowanego kodu.
W jednym z naszych przypadków testowych otrzymuję błąd z maszyny JVM:
TestClass.java:83865: too many constants
Tylko to. Widziałem inne raporty o podobnym błędzie, ale w tych przypadkach komunikat o błędzie narzeka na pulę stałą. Ale w tym przypadku tak nie jest.
Jeśli to oznacza, że osiągnięto limit puli stałej JVM, co to oznacza? Mam na myśli, jakie stałe są te w odniesieniu do kodu Java? Metody klasowe? Pola? Literały? Nie mam żadnych statycznych ani końcowych metod ani pól.
Czy możesz dać mi kilka wskazówek?
EDYTOWAĆ:
Podział kodu na wiele klas jest już w harmonogramie. Chociaż nie z tego powodu.
Zdaję sobie sprawę z ograniczeń stałej puli, moje wątpliwości były dokładnie w to, co wchodzi w grę. Wygenerowany kod nie ma więcej niż około 10000 metod + pól.
Moje wątpliwości dotyczą tego, czy literały również trafiają do puli stałej, czy nie, ponieważ jest to jedyny powód, dla którego podnoszę tę liczbę do 65 KB. Tak wydaje się.