Question

Pour une situation telle que la capture de texte incrémentielle, par exemple si vous receviez tous les appels output.write lors du rendu d'une page, et si ceux-ci étaient ajoutés à un rédacteur de texte via un constructeur de chaînes.

Existe-t-il un moyen plus efficace de procéder? Quelque chose qui existe déjà dans dotnet de préférence? Surtout s'il y a une taille totale supérieure à cent k. Peut-être que quelque chose ressemble plus à un tableau de pages plutôt que de la mémoire contiguë?

Était-ce utile?

La solution

Je pense que StringBuilder est le moyen le plus efficace d’ajouter du texte au format .net. Pour être plus efficace, vous pouvez spécifier la taille initiale de StringBuilder lorsque vous le créez.

Autres conseils

Cela dépend de ce que vous faites avec ce texte.

Si le problème est le traçage ou la journalisation, je dirais que votre meilleur pari est d'utiliser ETW (Event Tracing for Windows). Il s’agit d’une fonction de traçage au niveau du noyau intégrée à Windows depuis Windows 2000 et beaucoup plus rapide que les E / S sur fichier.

Si vous n'utilisez pas .NET 2.0, vous devez effectuer un petit travail d’API Win32 pour pouvoir l’utiliser, puis créer une classe de fournisseur que vous enregistrez sur le système. C'est un peu compliqué mais cela en vaut la peine.

Si vous utilisez .NET 3.5, vous pouvez trouver les classes Etw gérées dans System.Diagnostics.Eventing.

C'est aussi bon que ça va. Vous pouvez utiliser un StringWriter mais il écrit toujours dans un StringBuilder

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top