1 / 15

Profiling Ajankäytön seuranta

Profiling Ajankäytön seuranta. Profile, profile report tic/toc, cputime t=cputime; your_operation; cputime-t. How to make a program faster?. vektoroi alusta taulukot funktiot nopeampia kuin makrot käytä sisäisiä funktioita mex-tiedostot load, save nopeampia kuin file-i/o säästä muistia.

ama
Télécharger la présentation

Profiling Ajankäytön seuranta

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Profiling Ajankäytön seuranta • Profile, profile report • tic/toc, cputime • t=cputime; your_operation; cputime-t

  2. How to make a program faster? • vektoroi • alusta taulukot • funktiot nopeampia kuin makrot • käytä sisäisiä funktioita • mex-tiedostot • load, save nopeampia kuin file-i/o • säästä muistia

  3. Measuring time consumption • Esimerkki: • tic; • for k=1:100 • - run the program – • end; • toc

  4. Profile • profile on -detail builtin -history • [t,y] = ode23('lotka',[0 2],[20;20]); • profile report

  5. Trace of matrix function timedem1(A, kierr) % function timedem1(A, kierr) % Neliömatriisin jäljen \sum A(ll) laskemiseen kulunut aika n=size(A); n=min(n); % for-silmukalla t1 = cputime; for j=1:kierr, ta1 = 0; for l=1:n, ta1 = ta1 + A(l,l); end; end; t1 = cputime-t1;

  6. Trace by Matlab % Matlabin trace-funktiolla t2 = cputime; for j=1:kierr, ta2 = trace(A); end T2= cputime-t2; disp(sprintf('jälki: for-silmukka %f, trace-funktio %f', ta1,ta2)) disp(sprintf('ajat: for-silmukka %f, trace-funktio %f', t1,t2))

  7. Trace with Matlab • Ajettu 13.2002 rockissa >> tracetest(rand(1000,1000), 1000); jälki: for-silmukka 513.354863, trace-funktio 513.354863 ajat: for-silmukka 0.400000, trace-funktio 0.166667 Aika liian lyhyt!

  8. Ajettu PC:ssä, vuosi?? profile on nopeustesti0(rand(1000,1000),1000); jälki: for-silmukka 498.075875, trace-funktio 498.075875 ajat: for-silmukka 6.950000, trace-funktio 0.060000 profreport

  9. Test in rock 20.3.2003 profile on >> tracetest(rand(1000,1000), 1000); jälki: for-silmukka 494.591135, trace-funktio 494.591135 ajat: for-silmukka 11.800000, trace-funktio 0.233333 profile plot

  10. part of profiling report • 100% of the total time in this function was spent on the following lines: • 11: ta1 = 0; • 0.020 0% 12: for l=1:n, • 5.697 81% 13: ta1 = ta1 + A(l,l); • 1.233 18% 14: end; • 15: end; • 19: for j=1:kierr, • 0.060 1% 20: ta2 = trace(A); • 21: end

  11. Programming style • Write clearly • Check that results are correct. • Consider time consumption by profiling.

  12. Jaa tehtävä selkeisiin osiin. Käytä funktioita runsaasti, mikälilaskuaika sen sallii. Funktiot voivat kutsua toisia funktioita. Valitse järkevät ja kuvaavat muuttujanimet, erityisesti globaaleillemuuttujille. Vältä turhia apumuuttujia. Laadi ehtokäskytloogi-siksi. Hyvä periaate on kirjoittaa ensimmäiseksise vaihtoehto, joka todennäköisimmin tulee valituksi. Käytä sisennyksiä. Laadi funktioille hyvät opasteet, joihin kuuluvat yleiskuvaus,syöttö- ja tulosparametrien esittelyt. Write clearly

  13. Testaa tunnetulla datalla. Testaa rajatapaukset. Testaa syöttödatan järkevyys: rivit, sarakkeet. Laadi virheilmos älyttömälle syöttö-datalle, esimerkiksi [], NaN, inf Ohjelman oikein toimivuutta ei voi todistaa. Test the program

  14. joustavat formaatit, älä vaadi kiinteämittaisia sarakkeitasisäänsyötössä. Sulje tiedosto niin pian kuin voit. binääri vai tekstitiedosto: tekstimuotoisettulostiedostot ovat siirrettäviä. Binääritiedostot vievät vähemmän tilaa. Use of files

  15. vektorikäskyt ovat nopeampia kuin silmukat matriisien alustaminen silmukat funktioihin eikä funktiokutsuja silmukoissa käytä kirjastofunktioita, ne ovat nopeita myös funktioissa voi käyttääclear-käskyä harvat matriisit vältä turhia apu-taulukoita pack-käsky Time and memory

More Related