2009-06-14 7 views
0

Y aurait-il un gain de performance dans l'encapsulation d'une chaîne dans un objet de référence léger par rapport à l'encapsulation d'une chaîne dans une structure. La variable chaîne ne pointe-t-elle pas toujours vers le tas, qu'elle soit contenue dans un type de valeur ou un type de référence?Performance: encapsuler une chaîne dans une structure?

Répondre

3

La chaîne est toujours située sur le tas, donc cela n'aiderait pas. Mettre la référence à la chaîne dans la structure ne peut que la ralentir, car elle nécessite une déréférence supplémentaire. Mais cela ne sera probablement pas mesurable en pratique.

Si vous vouliez vraiment qu'une chaîne soit sur la pile au lieu du tas, vous devez créer vos propres chaînes personnalisées en tant que char contenant des caractères. Mais cela va être très pénible pour aucun gain et ne peut être utilisé que pour représenter une chaîne de taille fixe puisque la structure est de taille fixe.

+0

Merci les gars qui l'ont éclairci! –

0

Puisque vous avez étiqueté celui-ci comme .NET, la chaîne sera certainement stockée sur le tas. Cependant, je ne pense pas qu'il y aura une différence notable et pourquoi devrait-il y avoir? D'abord, l'objet ou la structure doit être déréférencé et localisé et ensuite la chaîne elle-même. Cela pourrait être un plus, si vous pouviez faire sans encapsuler la chaîne d'une perspective de performance et de mémoire.

Questions connexes