Мне нужно заполнить встроенную функцию ~ 20k и константы из CHM-файла в список. Сначала я попытался их сериализовать, но десериализация занимает 1500 мс (слишком длинная для быстрого завершения кода, даже при первом попадании).Создание действительно большого Java-кода
Пробовал генерировать код с помощью StringTemplate, который генерирует действительный код. Но он не будет компилироваться, потому что метод initEnums() превысил предел размера 65536 ". (И мой Eclipse, умирает вскоре после)
Сформированный метод выглядит следующим образом:
public XModelField[] initEnums() {
return new XModelField[] {
new XModelField("aName", "aType", ...),
...
// About 4'000 more entries
};
}
Если этот предел ограничен только к исходному коду, я мог бы использовать другую библиотеку для создания файла класса непосредственно (возможно CodeModel). Я хотел бы сохранить код, если возможно, без повторной записи выходного генератора с нуля. Какие-либо предложения?
как насчет десериализации заранее (и/или агрессивного кеширования)? –
Это ограничение является ограничением файлов классов. Анализатор исходного кода не заботился бы о меньших возможностях. –
@jan Уже агрессивно улучшает запуск и производительность. Кроме того, я не хочу, чтобы рекрутинговые инженеры легко копировали мои данные; зависимостей классов следует установить их на мгновение. Я предполагаю, что CodeModel не имеет каких-либо ограничений в отношении методов, правильно? –