Bonjour,
J'aimerai generer une liste de la forme suivante en Scala:
aa -> 0
ab -> aa + 1
ac -> ab + 1
C'est pour un faire un unit test dans un exercice sur coursera.
Alors j'ai quelque chose et j'ai utilise des Stream au lieu de simples listes dans l'intention d'eviter de creer des listes intermediaires et donc de diminuer la consommation memoire. D'ou ma question:
Est-que quelqu'un connait un outil pour rapidement visualiser les allocations d'objets en scala?
Je pense a JConsole, mais c'est un peu lourd a preparer juste pour tester un bete truc comme ca.
Sinon j'ecoute aussi vos suggestions d'amelioration du code :-)
val alphabet = "abcdefghijklmnopqrstuvwxyz".map(_.toString)
val binomes = for {
first <- (0 to 25).toStream
second <- (0 to 25).toStream
} yield {
alphabet(first) + alphabet(second)
}
binomes.zip(binomes.tail).map {
case (biAA, biAB) => biAB -> (biAA + " + 1")
}.toMap
# Generer un heap dump et lire avec jhat
Posté par j_m . Évalué à 2.
Ce que j'ai essaye c'est de generer fichier qui contient un heap dump la classe HotSpotDiagnosticMXBean puis de le lire avec jhat.
Je peux alors voir la liste des classes instanciees et le nombre d'instances.
J'aimerais bien voir l'economie de creation d'objets qu'on obtient avec les stream. Mais si je compare avec et sans Stream (il faut aussi que je regarde du cote des view qui ont l'air plus approprie pour une lecture paresseuse d'une liste), et que j'ajoute des map inutiles, je ne vois aucune difference. Je me demande si le garbage collector ne passe pas avant que mon dump ne soit execute.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.