Je sais qu'il y a beaucoup de questions sur java.lang.OutOfMemoryError: Java heap space
.Comment résoudre java.lang.OutOfMemoryError: espace de tas Java sans augmenter la taille de mémoire tas
comme question 1
Mais aucun des liens ne sont pas des réponses appropriées à ma question.
Nous générons des rapports au format tableur, où des données énormes proviennent de la base de données. Nous avons augmenté la taille de la mémoire de tas de 2 Go à 4 Go, pas d'utilisation.
Peut être à cause d'un espace supplémentaire dans la colonne de base de données, donc je parés tous les getters
et setters
en utilisant la méthode trim()
, cela est également inutile.
Exemple:
String s = "Hai ";
s.trim();
Si quelqu'un ayant comment résoudre ce problème de côté de codage Java, sans augmenter la taille de l'espace de tas. Parce que le client l'a dit, il n'augmentera plus l'espace du tas.
Lorsque vous appelez cette méthode obtenir exception
private CrossTabResult mergeAllListsSameNdc(CrossTabResult crt, CrossTabResult res) {
crt.setFormularyTier(crt.getFormularyTier()==null ? "":((crt.getFormularyTier().contains(crt.getListId())? crt.getFormularyTier(): crt.getListId()+crt.getFormularyTier()) +"~"+res.getListId()+res.getFormularyTier()));
crt.setFormularyTierDesc(crt.getFormularyTierDesc()==null ? "":((crt.getFormularyTierDesc().contains(crt.getListId())? crt.getFormularyTierDesc(): crt.getListId()+crt.getFormularyTierDesc()) +"~"+res.getListId()+res.getFormularyTierDesc()));}
ne peut pas partager plus de code, en raison de la confidentialité. En regardant le code ci-dessus, si vous avez une solution alternative, informez-moi. Nous fusionnons deux String
basé sur le même id
.
Pourriez-vous fournir plus de code? – notanormie
Essayez d'amener les données par lots. Je suppose que pour rencontrer ce problème, vous devez obtenir toutes les données en un seul coup de la base de données à votre serveur d'applications. – alexd
@notanormie J'ai édité la question avec l'exemple de code. –