× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 5/14/07, Joe Pluta <joepluta@xxxxxxxxxxxxxxxxx> wrote:
> From: Steve Richter
>
> to add to an immutable string, just new up a new string and set your
> reference to the new guy:
> string xml = "<elem1/>" ;
> xml = xml + "<elem2/> ;

Slight problem: since the string is immutable, it has to make a complete
copy to do that simple append. Try appending one character at a time to
create a 16MB string, and tell me how well it performs <grin>.

I dont have that timing routine for as400, but I do have one in my
batch of timers I wrote when I was learning C#.

for each loop, the following code creates 6 new strings as it
concatenates onto the end of the initial string. When I run it on a 2
yo PC, 100,000 iterations of the loop takes 94 milliseconds.

// ------------------------- looper_NewString
-------------------------------
public int looper_NewString(long InLoopCx)
{
int nBx = Environment.TickCount;
for (long Ix = 0; Ix <= InLoopCx; ++Ix)
{
string s0 = "viewsonic";
string s1 = s0 + "viewsonic";
string s2 = s1 + "viewsonic";
string s3 = s2 + "viewsonic";
string s4 = s3 + "viewsonic";
string s5 = s4 + "viewsonic";
}
int nEx = Environment.TickCount;
int nElapsed = nEx - nBx;
return nElapsed;
}

By comparison, on a 460CPW model 170, similar RPG code with varying
strings takes 389 milliseconds for the same 100,000 iterations. Ramp
that up to the 3800 CPW model i515 and the RPG varying will run at 45
msecs. Factor in that an opteron PC would run at least 2x faster than
what I am using and you see what we are up against. A MSFT or Linux
application can be written using functionally superior string objects
w/o a performance penalty.

-Steve

the equivalent rpg code:
for ix = 1 to 100000 ;
v0 = 'viewsonic' ;
v1 = v0 + 'viewsonic' ;
v2 = v1 + 'viewsonic' ;
v3 = v2 + 'viewsonic' ;
v4 = v3 + 'viewsonic' ;
v5 = v4 + 'viewsonic' ;
endfor ;

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.