Dear friends, look at the following sample: FUNCTION MAIN()
LOCAL cShort := SPACE( 100 ) LOCAL cLong := SPACE( 1024 * 1024 ) LOCAL nSec LOCAL i nSec = SECONDS() FOR i = 1 TO 200000 cShort = STRTRAN( cShort, "TEST", "ABCDEFG" ) NEXT ? SECONDS() - nSec nSec = SECONDS() FOR i = 1 TO 200000 IF AT( "TEST", cShort ) > 0 cShort = STRTRAN( cShort, "TEST", "ABCDEFG" ) ENDIF NEXT ? SECONDS() - nSec nSec = SECONDS() FOR i = 1 TO 1000 cLong = STRTRAN( cLong, "TEST", "ABCDEFG" ) NEXT ? SECONDS() - nSec nSec = SECONDS() FOR i = 1 TO 1000 IF AT( "TEST", cLong ) > 0 cLong = STRTRAN( cLong, "TEST", "ABCDEFG" ) ENDIF NEXT ? SECONDS() - nSec INKEY( 0 ) RETURN NIL The results on my PC are: 0.33 0.16 10.86 3.38 So I wonder if we can speedup StrTran() just add the AT() test inside StrTran() C level code. Let me know if it can be done and if it is a good idea. EMG -- EMAG Software Homepage: http://www.emagsoftware.it The EMG's ZX-Spectrum Page: http://www.emagsoftware.it/spectrum The Best of Spectrum Games: http://www.emagsoftware.it/tbosg The EMG Music page: http://www.emagsoftware.it/emgmusic ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ xHarbour-developers mailing list xHarbour-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xharbour-developers