Jag har en loop som körs ganska många gånger i mitt program, Det blir ganska krävande eftersom en massa strängobjekt kommer att skapas. En sträng är immutable (oförenderlig) och därför skapas det nya objekt när man använder + på strängar. Prova istället att använda klassen StringBuffer. Ex:Programmet bli oerhört segt pg av if sats
den tar ung 20 sekunder,
men om jag lägger till några enkla if satser
så tar den sjukt mykcet längre tid, det körs nu och det har redan gått 5 min.
Det enda jag lägger till inuti min loop är följande:
if(variabel1) {
if(variabel2){
Sträng = Sträng + "Lite extra text";
}
else {
Sträng = Sträng + "Lite annan text";
}
}
både variabel1 och variabel2 är boolean värden redan har beräknats, (och alltså är inräknat i de 20 sek det tar för programmet utan ovanstående programmsnutt.)
Jag blir inte klok på det där, vad kan det bero på?
Programsnutten ovan kan väl inte vara så krävande?
Sv: Programmet bli oerhört segt pg av if sats
// utanför loopen
StringBuffer s = new StringBuffer(Sträng);
if(variabel1) {
if(variabel2)
s.append("Lite extra text");
else
s.append("Lite annan text";
}