Optimization (ITI8510): erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Uus lehekülg: '{{iti8510}}''Harjutame programmi optimeerimist'' == Programm == Kirjutage programm, mis loeb sisse faili ning väljastab selle faili statistika. * "Standardse" sisendfaili nä...'
 
5. rida: 5. rida:
Kirjutage programm, mis loeb sisse faili ning väljastab selle faili statistika.
Kirjutage programm, mis loeb sisse faili ning väljastab selle faili statistika.


* "Standardse" sisendfaili näide on dijkstras:
* "Standardse" sisendfaili saamiseks jooksutage:
/export/samba/itv0020/random_file
 
* Kui soovite ise sarnast faili, jooksutage:
  dd if=/dev/urandom of=random_file count=1048576 bs=1
  dd if=/dev/urandom of=random_file count=1048576 bs=1



Redaktsioon: 26. november 2014, kell 23:35

Real-Time Operating Systems and Systems Programming
[ @ ]

Harjutame programmi optimeerimist

Programm

Kirjutage programm, mis loeb sisse faili ning väljastab selle faili statistika.

  • "Standardse" sisendfaili saamiseks jooksutage:
dd if=/dev/urandom of=random_file count=1048576 bs=1
  • Programmi väljundiks on 256 (inimloetavat) rida ASCII numbreid, mis kajastavad faili sisu. Esimesel real oleks baidi väärtusega 0x0 esinemiskordade arv, real 256 baidi 0xff esinemiskordade arv.
  • Programmi käivitumise aega mõõtke käsuga:
time programminimi

Vihjeid

  • Vaadake kas saate mmap() abil faili lugemist kiirendada.
  • Vaadake kas on kasu loop unroll trikist
  • Võib-olla soovite thread-e või paralleelprogramme proovida?
  • Optimeerige programm -O võtmega
  • Väljundi kirjutamisel on võib-olla mõistlik printf asemel kirjutada oma väljundfunktsioon