[ 
https://issues.apache.org/jira/browse/IBATISNET-270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gilles Bayon closed IBATISNET-270.
----------------------------------

       Resolution: Fixed
    Fix Version/s: DataMapper 1.6.2
         Assignee: Gilles Bayon

Thanks,
Corrected also in version 3.0

In SVN

> ParseGenericArguments IsMatch is very slow
> ------------------------------------------
>
>                 Key: IBATISNET-270
>                 URL: https://issues.apache.org/jira/browse/IBATISNET-270
>             Project: iBatis for .NET
>          Issue Type: Improvement
>          Components: DataMapper
>    Affects Versions: DataMapper 1.6.1
>            Reporter: Michael Schall
>            Assignee: Gilles Bayon
>             Fix For: DataMapper 1.6.2
>
>         Attachments: After change.jpg, Before change.jpg
>
>
> I knew .* is expensive in regular expressions, but I had no idea how 
> expensive!  In our application when ConfigureAndWatch is called, the IsMatch 
> function call within ParseGenericArguments is taking 5000ms (reported by 
> dotTrace).  The method is called 1005 times at 5ms a piece.  By simply 
> removing the .* from the beginning of the regular expression, the time is 
> brought down to a total of 4ms (not per call, total)!  I also made the RegEx 
> object a static of the class so we aren't re-creating the expression for each 
> call to bring the total time down to 2ms!   I'll attach 2 images of the 
> before and after traces if I can.
> Please check my work...  I have tested it with my app and everything works 
> fine.
> Mike
> I will include the patch here:
>             private readonly static Regex _generic = new Regex(@"`\d*\[\[", 
> RegexOptions.Compiled);
>             private void ParseGenericArguments(string originalString)
>             {
>                 // Check for match
>                 bool isMatch = _generic.IsMatch(originalString);
>                 if (!isMatch)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to