Följande lilla loop som ingår i en längre procedur ger ibland extrema exekveringstider. Peo, Jodå, det har jag provat. Problemet är att med exakt samma förutsättningar får jag sådana extrema skillnader. På min egen XP-maskin med 1.6 GHz går det snabbt och bra men på en del andra segt så det liknar ingenting. Hej PeO, Hej Dennis Hej PeO, Hej Dennis.Extrema exekveringstider för en loop
Normalt får jag mätvärden på 10-15 mS. (För själva loopen alltså, inte hela proceduren)
På en 1.7 GHz med XP tar den istället 700-800 mS. Man hinner utmärkt med
att se hur Excel uppdaterar cell efter cell.
For iCol = 4 To iSistaCol
.Cells(.Range("CC_LastSample").Row + 1, iCol) = .Cells(.Range ("CC_LastSample").Row, iCol)
Next
På andra riggar, t.ex. en 300 MHz notebook med Win98 tar den 20 mS.
(Jag vet att det finns andra sätt att göra denna kopiering men det finns skäl till att jag gör på detta sätt, även att lägga .Range("CC_LastSample").Row i en variabel för att snabba upp det hela, men jag är ute efter varför det på vissa PC blir så otroligt segt ).
Någon som har någon idé ?Sv: Extrema exekveringstider för en loop
Application.Calculation = xlManual
Application.EnableEvents = False
Om det är en längre procedure kan du också testa att bryta ned den i mindre delar.
DennisSv: Extrema exekveringstider för en loop
Det finns ju vägar runt, precis som du visar, men jag är ute efter orsaken.
Jag vet ju inte var problemet slår till nästa gång. Andra delar av koden exekveras nämligen med normal fart även på problemriggarna.Sv: Extrema exekveringstider för en loop
OK, misstänkte detta.
Använder du olika versioner av XL?
Kalkylmotorn skiljer sig mycket, extremt mycket mellan 97 och XP-versionerna.
Om inte, vilken version av XL använder du?
DennisSv: Extrema exekveringstider för en loop
XL 2002 (XP) på alla maskiner eftersom jag också använder RTD-funktionerna som
introducerades i XL 2002.
/PeOSv: Extrema exekveringstider för en loop
Jag utgår från att du har isolerat tidsdifferensen till denna loop.
Har du samma tidsdifferens om du reducerar antal kolumner och rader i loopen, dvs ange fasta värden på deklarerade variabler istället för att överlåta det till XL?
Deklarera iSistaCol til Long istället men det ska inte påverka särskilt nämnvärt.
Kan du maila mig en exempelarbetsbok så att jag kan testa själv?
DennisSv: Extrema exekveringstider för en loop
Kan tyvärr inte skicka boken då den är beroende av vår RTD-server för att fungera och att avtalet med min uppdragsgivare inte tillåter det. Blir alltför mycket tjafs om jag skall fixa tillstånd, de är lite paranoida vad gäller sånt.
Tidigare erfarenheter......
Letar vidare.
Jag har ett annat problem jag skulle vilja ha hjälp med. Se nytt inlägg.
/PeO