public class Beregn // Dette er beregningsprogrammet { public static double plus(double i,double j,double k) { return i+j+k; } public static double minus(double i,double j,double k) { return -i-j-k; } public static double gange(double i,double j,double k) { return i*j*k; } }
Spm 1. Ville det være hurtigere for computeren at beregne såfremt beregningsprogrammet blev splittet op i 3 forskellige beregningsprogrammer, der blev kaldt individuelt fra hovedprogrammet, eller er ovenstående hurtigere eller gør det ingen forskel og hvorfor?
Spm 2. Kunne en enkelt metode erstatte de 3 metoder ovenfor med hele 3 return statements i metoden og kan man så i hovedprogrammet styre værdierne så at p1 får den første return værdi, p2 den anden return værdi og p3 den tredje return værdi?
Det vil næppe betyde en stor forskel i praksis. Tiden for metode kaldet skal under alle omstændigheder måles i milliarde dele sekunder. Og formentligt vil JVM'en kunne inline kaldet.
re 2)
Hvis du vil returnere flere værdier kan du f.eks. returnere en klasse som indeholder flere værdier.
Arne, tak - jeg har virkelig millioner af beregninger.
Ville du gider du give et eksempel på hvordan det ser ud i hovedprogrammet og beregneren - så at der returneres flere værdier fra f.eks. en metode - f.eks. plus der returnerer både i+j og i+k?
Hvis du har brug for at returnere flere beregninger, så kan de fx. returneres i et array
public static double[] plus(double i, double j, double k) { double[] result = new double[3]; result[0] = i + j + k; result[1] = i + j; result[2] = i + k; return result; }
alternativt, kan du jo vælge at kalde beregn metoden flere gange med 2 parametre i stedet for 3.
public static double[] plus(double i, double j, double k) { double[] result = new double[3]; result[0] = i + j + k; result[1] = i + j; result[2] = i + k; return result; } }
Den sidste model jeg lavede tog 9 timer om at beregne 15 dages begivenheder i en reaktor. I den havde jeg ingen metodekald overhovedet. Derfor leder jeg med lys og lygte efter steder hvor jeg kan spare beregninger og tid idet jeg kalde metoder i andre klasser.
Noget jeg har fundet ud af er, at det tager lang tid er at skrive tal til en csv fil. Måske er det også et område, hvor der er noget at hente
Det kan godt være, at det er skrivningen til csv-filen der tager lang tid - måske kunne du prøve at skrive til en tekstfil i stedet. Det kan være der er andre, der har forslag til en optimering på det punkt.
Den sidste model jeg lavede tog 9 timer om at beregne 15 dages begivenheder i en reaktor. I den havde jeg ingen metodekald overhovedet. Derfor leder jeg med lys og lygte efter steder hvor jeg kan spare beregninger og tid idet jeg kalde metoder i andre klasser.
Noget jeg har fundet ud af er, at det tager lang tid er at skrive tal til en csv fil. Måske er det også et område, hvor der er noget at hente
Jeg er stadig meget skeptisk overfor hvorvidt de metode kald betyder noget.
1) Hvilke parametre angiver du til java kommandoen ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.