Je travaille sur C#. Je reçois OutOfMemoryException
tout en utilisant string.replace(dt,"")
et même pour stringbuilder.replace(dt,"")
. Puis-je s'il vous plaît savoir comment surmonter ce problème? Ou tout autre moyen de faire de même?OutOfMemoryException lors de l'utilisation de string.replace()
Répondre
Étant donné que vos données sont très volumineuses, vous ne devriez pas essayer de les utiliser toutes en même temps. Au lieu de lire dans les mandrins, le traiter, puis l'écrire sur le disque et passer au morceau suivant.
Voici un code (non testé):
string current = getChunk();
while (current.Length > 0)
{
current = current.Replace(oldValue, newValue);
string toSave = current.Substring(0, current.Length - oldValue.Length);
saveToFile(toSave);
current = current.Substring(current.Length - oldValue.Length) + getChunk();
}
Je ne sauve pas la dernière oldValue.Length parce qu'il ya une chance qu'un remplacement pourrait être à mi-chemin dans un morceau et à mi-chemin dans un autre. NOTE: il peut y avoir un bug dans ce code, mais il est assez proche.
Votre chaîne est probablement trop grande et le gestionnaire de mémoire ne parvient pas à trouver un bloc de mémoire contigu pour la nouvelle chaîne.
Vous aurez besoin d'optimiser votre programme pour une gestion plus efficace de la mémoire.
merci pour la réponse .... oui la chaîne que j'utilise pour remplacer eu des données énormes ..... Peux-tu me suggérer un autre moyen de faire de même –
Un bloc de mémoire contigu ne devrait pas être réalloué pour StringBuilder car le remplacement n'augmente pas la longueur de la chaîne d'origine. Vérifiez le lien http://stackoverflow.com/questions/287842/is-stringbuilder-replace-more-efficient-than-string-replace pour plus d'informations –
Traitez la chaîne à l'intérieur d'une boucle en plus petits morceaux. – arul
- 1. string.replace bug de fonction?
- 2. OutOfMemoryException Traitement de gros fichier
- 3. JavaScript String.replace()
- 4. OutOfMemoryException lors d'un appel de méthode à distance
- 5. outOfMemoryException lors de la lecture des données Excel
- 6. Révision de code: problème OutOfMemoryException
- 7. Prévention de OutOfMemoryException avec GC.AddMemoryPressure()?
- 8. C++ recherche String.Replace()
- 9. SandCastle et OutOfMemoryException
- 10. Alternative à String.Replace
- 11. ImageList/Image OutOfMemoryException
- 12. DrawImage provoquant OutOfMemoryException
- 13. .NET OutOfMemoryException sur XMLSerializer.Serialize
- 14. OutOfMemoryException sur MemoryStream écrit
- 15. Javascript String.replace avec des expressions régulières dynamiques?
- 16. Pourquoi StreamReader.ReadLine renvoie OutOfMemoryException?
- 17. OutOfMemoryException lors de l'envoi de gros fichier 500 Mo en utilisant FileStream ASPNET
- 18. String.replace; remplacer par des problèmes de résultat de la fonction
- 19. OutofMemoryException - Chargement d'images extrêmement volumineuses
- 20. outOfMemoryException dans le jeu Android
- 21. OutOfMemoryException sur le périphérique mobile
- 22. OutOfMemoryException avec Clipboard.getData et PRTSC
- 23. nouvelle Bitmap OutOfMemoryException dans CF 2.0SP2
- 24. String.replace (ou toute autre modification de chaîne) ne fonctionne pas
- 25. StringBuilder.Replace() est-il plus efficace que String.Replace?
- 26. Beaucoup d'onglets de navigateur avec l'applet Java provoque OutOfMemoryException
- 27. DataGrid dans un StackPanel conduit à OutOfMemoryException
- 28. Pourquoi l'exception OutOfMemoryException est-elle levée?
- 29. OutOfMemoryException quand je frappe 1 Go
- 30. C# Asynchronous Network IO et OutOfMemoryException
Pouvez-vous élaborer votre code? –
merci pour la réponse ... mon problème est que j'utilise des données énormes .... donc obtenir le problème en remplaçant .... –