Re: fxcop

Miroslaw Dobrzanski-Neumann <[email protected]>
Newsgroups gmane.comp.gnu.dotgnu.developer
Message-ID <[email protected]>
On Sat, May 01, 2004 at 12:32:32AM +1200, Thong (Tum) Nguyen wrote:
> It really shouldn't be optimized out.
> 
> [ if (val == "") ] doesn't throw a NullReferenceException if val is null
> whereas [ if (val.Length == 0) ] will.
> 
> IMO, the appropriate optimisation would be to replace "" with String.Empty.

here are my run times:
if (a == "")            4.99s
if (a.Length == 0)      2.82s
if (a == string.Empty) 11.94s

thus a == string.Empty is not an option
how about this replacement:

if (a != null && a.Length == 0)

> 
> Regards,
> 
> ^Tum
> 
> > -----Original Message-----
> > From: Miroslaw Dobrzanski-Neumann [mailto:[email protected]]
> > Sent: Saturday, 1 May 2004 12:12 a.m.
> > To: PNET-D
> > Subject: [DotGNU]fxcop
> > 
> > Hello,
> > 
> > do you know FxCop?
> > 
> > FxCop ist a kind of lint that analyzes assemblies for coding and
> > performance
> > problems.
> > 
> > One of the fixed ideas (validation rules) of fxcop reads (this is not a
> > citation):
> > Do not test for empty string comparing it to empty string literal:
> > if (val == "")
> > 	...
> > use its length instead:
> > if (val.Length == 0)
> > 	...
> > because comparing strings (empty literal will be converted to an string
> > instance before comparison) is much more expensive than comaring the
> > string
> > length.
> > 
> > I have tested it with pnet and indeed pnet runs *val.Length == 0* two
> > times
> > faster than *val == ""*.
> > I have not tested other runtimes because it is not always allowed :-(.
> > But if FxCop says so it must be true for them too.
> > 
> > My question is if pnet could do it better?
> > Especially this trivial kind of optimization could be done directly in
> > parser.
> > It would have no impact on anything.
> > 
> > Regards
> > --
> > Miroslaw Dobrzanski-Neumann
> > E-mail: [email protected]
> > 
> > This message is utf-8 encoded
> > _______________________________________________
> > Developers mailing list
> > [email protected]
> > http://dotgnu.org/mailman/listinfo/developers
> 

-- 
Mirosław Dobrzański-Neumann

MOSAIC SOFTWARE AG
IT Berater für Vorstandsprojekte
Tel +49-2225-882-291
Fax +49-2225-882-201
E-mail: [email protected]

This message is utf-8 encoded
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.