espen180 wrote:
Jeg er klar over dette, og jeg kjørte faktisk funksjonene flere ganger for å få en gjennomsnittlig kjøretid. Hvor mange manger må funksjonen i så fall kjøres for å få en pålitelig måling? Jeg merket at første gang tok det ca 0.1 sekunder å kjøre begge to, men nebus stabiliserte seg fort på 35-56 mikrosekunder og min på 16-23 mikrosekunder.
Antall repetisjoner avhenger nok litt av kompleksiteten til koden. F.eks eksempelet i denne tråden vil det nok kreve mange repetisjoner pga det er knapt nok kode som kjøres. Eventuelt kan man jo bytte ut antall iterasjoner med større datamengder sent inn i funksjonen og se hvordan det påvirker resultatet.
espen180 wrote:
Jeg påstår ikke at bruk av innebygde funksjoner nødvendigvis er raskere, men det er etter hva jeg har lest ofte tilfellet.
Innebygde funksjoner er som regel raskest hvis det er blant de funksjonene som er kompilerte (samt ikke har for mange sjekker). svd(), qr(), osv er kompilerte funksjoner som baserer seg på LAPACK/BLAS direkte, mens andre innebygde funksjoner vil kanskje gå veien om mye rart før de til slutt havner nede på LAPACK/BLAS nivå, ergo mer tidkrevende.
Men det viktigste er jo at du er klar over det, og det er du tydeligvis, så da er alt bra (også ang. beregning av kjøretid).
