J'ai une liste d'éléments qui ne contiennent peut-être que dix variables. Mais les articles ont un bon code, et j'aimerais en ajouter d'autres. Je suis curieux de savoir comment cela va affecter la taille de ma structure. Mon intuition me dit que chacun a une pile, mais avec des arguments se faisant passer et des choses que je n'ai probablement pas considérées, je ne suis pas sûr. Donc à peu près combien le code est-il ajouté à ma structure de données?Est-ce que la quantité de code augmente la structure des données?
Répondre
Le code n'ajoute pas à la taille de votre structure.
Le code associé à une classe n'est généralement pas dupliqué par instance, donc l'ajout de code ne devrait pas avoir d'impact sur la taille de votre liste.
Même si vous placez le code dans le même ensemble d'accolades que les données, le compilateur le séparera et le placera dans une section de mémoire différente. De cette façon, vous n'avez besoin que d'une copie du code - il n'est pas nécessaire de faire une nouvelle copie pour chaque élément qui l'utilise.
La taille réelle du code compilé ne pose problème que dans les projets de très grande taille. Habituellement, ce n'est pas beaucoup plus grand que le texte source. Sur les petits programmes, c'est typiquement quelques centaines de K ou un ou deux méga au plus. Cela ne vaut pas la peine de s'inquiéter des machines modernes.
Le code n'est pas stocké sur le tas.
Indépendamment du nombre d'objets que vous créez, vous ne disposez que du code au même endroit.
Les fonctions membres de classe sur lesquelles l'objet fonctionne sont stockées différemment et n'ont aucun effet sur la taille de l'objet. Où les membres de données à l'intérieur de la classe feront partie de l'objet et la taille de l'objet changera si vous changez le type de la variable.
ex:
class Test
{
1. member functions
//it does not matter how many functions you have, this section does not contribute
// to object size
2. member variables
//this contributes to the object size, define an int or double etc will change the object size
}
Chaque objet ne possède pas son propre pile. Les piles sont par fil/processus, pas par objet.
La taille d'une instance d'objet est (principalement) la somme de ses membres de données. Les membres de fonction ne sont pas stockés par instance et n'ont aucun effet sur la taille de l'instance.
Votre programme a une seule pile par thread. Lorsqu'une fonction est appelée, la mémoire de la pile est réservée pour chaque paramètre et variable de cette fonction et libérée lorsqu'elle revient.
Votre objet est stocké sur la pile s'il est instancié dans une fonction sans être nouveau. Si vous utilisez new, seule une référence est stockée sur la pile et l'instance elle-même est stockée sur le tas.
:)
- 1. Structure de données utilisée pour la structure de répertoire?
- 2. L'héritage RTTI C++ augmente la taille des classes
- 3. iPhone: choix de la structure de données
- 4. structure de la base de données
- 5. sélection de la structure de données
- 6. Meilleure structure de données pour la recherche?
- 7. comment vérifier la structure de la base de données interne
- 8. idiomatiques Ruby: la transformation de la structure de données
- 9. Optimisation de la structure des classes
- 10. Structure de la structure XML dans le schéma de la base de données
- 11. Structure des données du calendrier
- 12. Delphi: Imiter la structure de données de MS OneNote
- 13. Structure de la base de données du mur Facebook
- 14. Javascript: chargement quantité de données de la mémoire en fonction de la condition
- 15. Valider la quantité d'objets associés
- 16. Données de planification des tâches/structure d'objet
- 17. Quelle est la structure de données la plus efficace pour contenir des mots-clés?
- 18. C#: Pointeur vers la structure à l'intérieur de la structure
- 19. Pourquoi la taille de mon fichier Visio augmente-t-elle?
- 20. Vérification de la quantité d'espace sharedObject disponible
- 21. base de données relationnelle et la structure de réseau
- 22. Est-ce que ADO.NET peut créer sa propre validation de base en reflétant la structure de la base de données?
- 23. À quoi ressemble la structure de données du numéro d'Inode?
- 24. ont besoin d'un moyen d'importer une grande quantité de données dans la base de données MySQL
- 25. La longueur de la requête augmente chaque fois que le panneau de mise à jour est rechargé
- 26. Obtenir la liste des champs dans la structure
- 27. Sémantique de la structure html pour les pages de données
- 28. structure de données laide à la recherche java
- 29. Comment découvrir la structure d'une base de données PostgreSQL?
- 30. configuration de la structure de la carte
En fait, le code compilé est généralement considérablement plus petit que la représentation de la source. –
Maintenant que j'y pense, vous avez certainement raison quand il s'agit de C#. Je suis plus habitué au C++, où un "cout" égaré peut finir par compiler et lier dans une quantité incroyable de code. – Charlie