我需要將〜20k內置函數和常量從CHM文件填充到列表中。首先我嘗試序列化它們的列表,但反序列化需要1500ms(即使在第一次命中時,快速代碼完成時間也太長)。生成真正大的Java代碼
使用StringTemplate生成有效代碼的試驗代碼生成。但它不會編譯,因爲「initEnums()方法超過了65536的大小限制」。 (和我的Eclipse之後很快死亡)
生成的方法是這樣的:
public XModelField[] initEnums() {
return new XModelField[] {
new XModelField("aName", "aType", ...),
...
// About 4'000 more entries
};
}
如果這個限制被限制只到源代碼,我可以用另一個庫直接生成類文件(也許CodeModel )。我想保留我的代碼,如果可能的話,不要再次重寫輸出生成器。有什麼建議麼?
提前解串(和/或積極緩存)怎麼辦? – 2013-03-26 19:02:14
這個約束是類文件的一個約束。源代碼解析器不會在乎任何限制。 – 2013-03-26 19:11:32
@jan已經積極提高啓動和性能。此外,我不希望逆向工程業餘愛好者輕易複製我的數據;類的依賴關係應該暫時將它們放在後面。 我假設CodeModel在方法上沒有這種限制,對吧? – 2013-03-27 09:15:27