Dans les structures de données, je sais que la taille de la structure dépend des liens internes d'une section à l'autre. Y at-il un moyen, en dehors de JProfiler pour dire exactement combien de mémoire est liée dans une structure particulière? Par exemple, le projet de classe de ce semestre a trait à l'application de diverses structures à une base de données de chansons. Les projets ont couvert des tableaux, des listes, des listes déroulées et des arbres. Ce que je voudrais faire, c'est voir combien de mémoire est utilisée. Par exemple, une liste chaînée a besoin d'une mémoire de 3N, mais j'aimerais voir combien d'espace occupe un nœud dans mon projet. JProfiler a l'air de fonctionner, mais 500 $ sont hors de ma gamme de prix, et je voudrais l'utiliser pour toutes les structures couvertes ce semestre, pas les trois appliquées jusqu'à présent.Comment déterminer l'utilisation réelle de la mémoire d'une structure de données
Répondre
Utilisez VisualVM. Il vient avec le JDK et vous permet de prendre un instantané du tas.
Utilisez System.getRuntime(). FreeMemory().
Exécutez le garbage collector; Vérifiez la mémoire libre; créez l'un de vos objets; vérifier la mémoire libre; soustraire.
Selon le fonctionnement de la récupération de place, il n'y a aucune garantie que cela produise un montant valide pour la taille d'un objet. Cela ne veut pas dire que ce n'est pas le cas, mais simplement qu'il existe une possibilité toujours présente de vous donner une valeur erronée. – phill
Bien sûr, il n'y a aucune garantie, mais je n'ai jamais entendu parler d'échec en pratique. Avez-vous? – novalis
Depuis Java 8, c'est en fait 'Runtime.getRuntime()' ... peut-être que c'était différent avec les versions précédentes (?). –
Le moyen le plus précis est probablement d'utiliser un profileur - utilisez Google pour en trouver des gratuits.
Vous pouvez également essayer la technique dans Do you know your data size?.
Je l'ai honnêtement jamais utilisé auparavant, mais il y a une méthode getObjectSize dans le cadre de l'interface Instrumentation qui peut être en mesure de fournir les réponses que vous voulez sans une application tierce. Cela peut ne pas être plus facile que VisualVM, comme l'a suggéré Amir, mais ça ne fait jamais de mal de lire à ce sujet.
- 1. taille de la mémoire de la structure de données Python
- 2. Forcer l'allocation de la mémoire réelle
- 3. Allocation de mémoire de la structure globale
- 4. Déterminer l'utilisation de la mémoire des objets?
- 5. Libérer la mémoire de la structure en C
- 6. Une façon de déterminer l'utilisation de la mémoire «réelle» d'un processus, c'est-à-dire le RSS sale privé?
- 7. Structure de données arborescente
- 8. Comment déterminer si Type est une structure?
- 9. comment vérifier la structure de la base de données interne
- 10. Structure de données utilisée pour la structure de répertoire?
- 11. Choix de la structure de données
- 12. structure de la base de données
- 13. MATLAB: Déterminer la longueur/taille totale d'un tableau de structure avec des champs en tant que tableaux de structure
- 14. WEKA Impossible de déterminer la structure comme arff
- 15. structure de la population par adresse mémoire en C
- 16. iPhone: choix de la structure de données
- 17. structure de la base de données
- 18. sélection de la structure de données
- 19. Chargement de données binaires dans une structure
- 20. Question sur la conception de la structure de données
- 21. allocation de mémoire pour une structure
- 22. C structure de données sur le disque
- 23. structure de données multidimensionnelle
- 24. Structure de données
- 25. Structure de données XML
- 26. Structure de données d'arbre
- 27. Comment déterminer d'où provient cette fuite de mémoire?
- 28. Structure de données matricielles
- 29. Suggestion pour une structure de données!
- 30. comment analyser une structure de données arborescente?
Merci, cela ressemble à ce que je cherchais. – Jason
Je crois que vous avez laissé un mot ou deux à la fin de votre –
Il semble que j'ai fait LOL merci. Correction –