I think it is more important to design your software well and write clear
concise code than to worry about shaving every millisecond off every piece
of code.  A good design usually results in fast code anyway; and it helps
when you need to modify code, especially when requirements change.  Also
when you need to optimise certain sections after you have had a chance to
use a profiler, a good extensible design will make the task so much easier.

----- Original Message ----- 
From: "tracey" <[EMAIL PROTECTED]>
To: "'NZ Borland Developers Group - Delphi List'" <[EMAIL PROTECTED]>
Sent: Thursday, August 12, 2004 9:02 AM
Subject: RE: [DUG] Stringlist - to clear or not to clear


> Oh, Ive been doing ok all along then lol
>
> Thanks all for your advice.  I feel so much better =)
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On
> Behalf Of Allan, Samuel
> Sent: Wednesday, 11 August 2004 1:44 p.m.
> To: NZ Borland Developers Group - Delphi List
> Subject: RE: [DUG] Stringlist - to clear or not to clear
>
> Conventional wisdom suggests that you should not worry about small
> optimisations ever. You should just write your code in the most obvious
> way you can. If it turns out to be unacceptably slow in testing then you
> should look into optimising those parts that are slow and are required
> to be fast.
>
> This way you save on the effort that would have been required to
> optimise those parts of your code that never need optimising. Like if
> the user's response takes 200 milliseconds instead of 5, who cares? If
> the response is ten seconds and they are complaining, then you worry
> about it.
>
> Of course there will be situations in which you would optimise first,
> but that is conventionally the general rule.
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> On Behalf Of tracey
> Sent: Wednesday, August 11 2004 12:23 p.m.
> To: 'NZ Borland Developers Group - Delphi List'
> Subject: RE: [DUG] Stringlist - to clear or not to clear
>
>
> > Why do you even need to bother optimising code at this level.
>
> After 4 years of learning my own bad habits by teaching myself, I have
> decided to attempt to become a more "efficient" developer.  Where
> improvement is needed is still unclear at this point, but if I examine
> everything, surely I can only improve yes?? (Part of my motivation here
> is
> my recent move to .NET.. I understand I will need all the help I can get
> with that)
>
> SaveToFile is only really used as a debugging tool in my isapi apps, or
> for
> my logs.
>
> I use mainly stringlists but never have a huge amount at one time.  I am
> currently aware that string manipulation can be costly so it's a good
> place
> to start.
>
> Feel free to fire any good advice at me regarding "efficient"
> development =)
>
> And have a great day all =)
>
> Tracey
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> On
> Behalf Of Dennis Chuah
> Sent: Wednesday, 11 August 2004 10:55 a.m.
> To: NZ Borland Developers Group - Delphi List
> Subject: Re: [DUG] Stringlist - to clear or not to clear
>
>
> 1.  Try removing "SaveToFile" because that is an expensive operation and
> will cloud your results.
>
> 2.  Why do you even need to bother optimising code at this level.  Your
> example quite clearly shows there are better things to optimise (eg.
> your
> queries) than to worry about creating and freeing a couple of string
> lists.
>
> ----- Original Message ----- 
> From: "tracey" <[EMAIL PROTECTED]>
> To: "NZ Borland Developers Group - Delphi List" <[EMAIL PROTECTED]>
> Sent: Wednesday, August 11, 2004 10:42 AM
> Subject: [DUG] Stringlist - to clear or not to clear
>
>
> > I would be interested to hear the opinion of all you gurus on the best
> > practice for re-using TStringLists.
> >
> >
> >
> > Scenario 1
> >
> >
> >
> > Create
> >
> > Use
> >
> > Clear
> >
> > Re-use
> >
> >
> >
> >
> >
> > Scenario 2
> >
> > Create
> >
> > Use
> >
> > Free
> >
> >
> >
> > Create
> >
> > Use
> >
> > Free
> >
> >
> >
> > I tried to test this myself by doing both ways and looping each 10000
> times
> > but both take 11 seconds..
> >
> >
> >
> > procedure TForm1.TestPerformance;
> >
> > var
> >
> >     i: integer;
> >
> >     testTimeStart, testTimeStop: TTime;
> >
> > begin
> >
> >
> >
> >     testTimeStart := Now;
> >
> >     for i := 0 to 10000 do
> >
> >     begin
> >
> >         sMessageBody := TStringList.Create;
> >
> >         try
> >
> >             sMessagebody.Add('This is a test to see which way is
> better.');
> >
> >             sMessageBody.Add('  This test is performed on the same
> > TStringList but freeing it then re-creating the stringlist');
> >
> >             sMessageBody.SaveToFile('test.txt');
> >
> >         finally
> >
> >             sMessageBody.Free;
> >
> >         end;
> >
> >
> >
> >     end;
> >
> >     testTimeStop := Now;
> >
> >     ShowMessage('create then freee= ' + TimeToStr(testTimeStop -
> > testTimeStart));
> >
> >
> >
> >     testTimeStart := Now;
> >
> >     try
> >
> >         sMessageBody := TStringList.Create;
> >
> >         for i := 0 to 10000 do
> >
> >         begin
> >
> >             sMessagebody.Add('This is a test to see which way is
> better.');
> >
> >             sMessageBody.Add('  This test is performed on the same
> > TStringList but clearing it then re-loading the strings');
> >
> >             sMessageBody.SaveToFile('test1.txt');
> >
> >             sMessageBody.Clear;
> >
> >         end;
> >
> >     finally
> >
> >         sMessageBody.Free;
> >
> >         testTimeStop := Now;
> >
> >         ShowMessage('create once only= ' + TimeToStr(testTimeStop -
> > testTimeStart));
> >
> >     end;
> >
> > end;
> >
> >
> >
> > Which brings me to Q2 - How can I get a TTime to show ms?
> >
> >
>
>
> ------------------------------------------------------------------------
> ----
> ----
>
>
> > _______________________________________________
> > Delphi mailing list
> > [EMAIL PROTECTED]
> > http://ns3.123.co.nz/mailman/listinfo/delphi
> >
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
>
>
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
>
>
>
> _______________________________________________
> Delphi mailing list
> [EMAIL PROTECTED]
> http://ns3.123.co.nz/mailman/listinfo/delphi
>
_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to