J'ai besoin de remplir la fonction intégrée ~ 20k et les constantes d'un fichier CHM dans une liste. J'ai d'abord essayé de sérialiser une liste d'entre eux, mais la désérialisation prend 1500ms (trop long pour un code rapide, même au premier coup).Génération de code Java très gros
Génération de code à l'aide de StringTemplate, qui génère du code valide. Mais il ne compilera pas car la méthode "initEnums() dépasse la limite de taille de 65536". (Et mon Eclipse meurt peu de temps après)
La méthode générée ressemble à ceci:
public XModelField[] initEnums() {
return new XModelField[] {
new XModelField("aName", "aType", ...),
...
// About 4'000 more entries
};
}
Si cette limite est limitée uniquement au code source, je pourrais utiliser une autre bibliothèque pour générer le fichier de classe directement (CodeModel peut-être). Je voudrais garder mon code, si possible sans réécrire le générateur de sortie à partir de zéro. Aucune suggestion?
qu'en est-il de la désérialisation à l'avance (et/ou de la mise en cache agressive)? –
cette contrainte est une contrainte des fichiers de classe. L'analyseur de code source ne se soucie pas de limites arbitraires. –
@jan Amélioration dynamique du démarrage et des performances. Je ne veux pas non plus que les amateurs de reverse engineering copient facilement mes données; les dépendances de classe devraient les mettre derrière pendant un moment. Je suppose que CodeModel n'a aucune limite de ce genre sur les méthodes, non? –