2009-03-10 7 views
0

Je pense à quelques trucs liés aux informations sur le type d'exécution, et j'aimerais avoir des retours de la part des programmeurs qui travaillent sur des projets bien plus importants que moi. Est-il raisonnable de s'attendre à ce qu'un programme ait plus de 65536 (2^16) types définis par l'utilisateur (classes et structures) dans un seul projet? Cela fait pas signifie 65536 instances, cela signifie 65536 types. Est-ce que cela aurait de l'importance dans la pratique si un compilateur vous limitait à 65536 classes/structures dans un projet?Est-il raisonnable d'avoir plus de 65536 types définis par l'utilisateur dans les grands projets?

Répondre

1

Non, car à ce stade, vous devriez fortement découpler les projets. Seuls les types «publics» doivent interagir entre eux à travers les projets. Ensuite, la limitation devient: maximum de 2^16 types par projet, et maximum de 2^16 types vis-à-vis du public dans tous les projets.

0

Qui dit type info == nombre de 16 bits?

+0

C'est hypothétique, pour un schéma que je considère. – dsimcha

+0

Eh bien, faites-en un nombre de 32 bits alors - un supplément de 2 octets par classe ne va pas causer beaucoup de problèmes. –

+0

Cela a à voir avec les pointeurs vers RTTI stockés par les garbage collectors, ce serait donc deux octets de plus par * instance *. – dsimcha

1

Je considérerais cela comme une contrainte de l'environnement. Dans certains systèmes, les types sont générés automatiquement. Dans ces occasions, un grand nombre de types seraient créés. Même si ce n'est pas près de 65536, pourquoi voudriez-vous imposer une telle restriction?

Dans tous les systèmes/applications modernes, le nombre de tous les objets n'est limité que par la mémoire système. C'est un pas en arrière d'avoir une autre restriction.

1

C'est une question de priorités. Le temps (et la quantité de code) consacré à la mise en œuvre d'un nombre «illimité» de types est-il justifiable dans la portée actuelle du projet?

Vous voudrez également considérer la maintenabilité comme le projet/compilateur se développe. Je dirais que des cas particuliers comme avoir une quantité de types obèses ne justifient pas vraiment de prendre cela en compte si vous ne ciblez pas spécifiquement cela. Qui est votre public cible?

MISE À JOUR: Dans certains cas, vous voudrez peut-être en fait vous limiter pour devenir plus efficace dans un autre aspect (comme la mémoire, la vitesse d'exécution, etc.) Tant qu'il est clairement documenté, je pense que vous devriez aller avec ce qui correspond à vos besoins spécifiques.

Questions connexes