Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Parsing goes out of memory
Message
De
08/11/2013 19:03:24
 
 
À
08/11/2013 17:59:04
Information générale
Forum:
ASP.NET
Catégorie:
Code, syntaxe and commandes
Versions des environnements
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01587600
Message ID:
01587607
Vues:
36
This message has been marked as a message which has helped to the initial question of the thread.
>The following methods, for specific operations, can be called millions of times:
>
>
>    ' Equivalent of VFP StrTran()
>    ' expC1 String
>    ' expC2 Search for specific character
>    ' expC3 Replace
>    Public Function StrTran(ByVal tcSearchIn As String, ByVal tcSearchFor As String, _
>     ByVal tcReplace As String) As String
>        Dim loStringBuilder As StringBuilder = New StringBuilder(tcSearchIn)
>        Return loStringBuilder.Replace(tcSearchFor, tcReplace).ToString()
>    End Function
>
>
>However, this is usually not the case. So, a hit will require about 20 SQL Server requests, which in turn call this method for some adjustments, combined with some other application code logistic that might require it. The problem is if this is called millions of times in a short period, such as within 30 seconds or a minute, I have this "Out of memory" issue. Is there something I am missing here? I am returning a string to the caller. This is fairly simple. It is just two lines.

You are creating millions of string instances in a short period of time. See http://msdn.microsoft.com/en-us/library/system.string%28v=vs.110%29.aspx#Immutability. Using the StringBuilder in this case doesn't help because the ToString call at the end creates the new string.

For doing multiple calls, you should create a single StringBuilder at the start and execute all of the replaces using the same StringBuilder. After the replaces are finished, then call your ToString.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform