Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Vreme kompajliranja i zauzeta memorija

[es] :: C/C++ programiranje :: Vreme kompajliranja i zauzeta memorija

[ Pregleda: 3577 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Vreme kompajliranja i zauzeta memorija23.03.2006. u 00:56 - pre 219 meseci
Radim one male zadačiće na www.z-trening.com
Kako ja da saznam koliko je vremena potrebno da se kompajlira moj program i koliko je memorije potrebno za izvršanje tog programa?
Hvala!
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 13:14 - pre 219 meseci
Citat:
vremena potrebno da se kompajlira moj program

to neces lako saznati

Citat:
koliko je memorije potrebno za izvršanje tog programa

zbroji sve "varijable" nizove i slicno
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 14:04 - pre 219 meseci
Pa da je lako saznati ne bih pitao ovde :D
Znam da postoji način da se to izračuna.
A za ovo drugo sigurno postoji neko elegantnije rešenje od čiste fizikalije.
Šta ako imam 300 varijabli, nizova, etc.? Hoću li i to brojati jednu po jednu?

pOz
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
*.dial-up.dsl.siol.net.

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 14:20 - pre 219 meseci
na linuxu imas za vreme komandu `time`

Code:

bash-3.1$ time g++ test.cpp -Wno-deprecated

real    0m0.866s
user    0m0.748s
sys     0m0.096s
bash-3.1$ 

Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.ru
Via: [es] mailing liste



+2 Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 14:33 - pre 219 meseci
Meni to treba isključivo za windows. Najbolje bi bilo ako MS VS ima opciju za tako nešto, mada ne pravim razliku za kompajlere i grafička okruženja. Lako se radi copy/paste.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 17:33 - pre 219 meseci
Citat:
Meni to treba isključivo za windows. Najbolje bi bilo ako MS VS ima opciju za tako nešto, mada ne pravim razliku za kompajlere i grafička okruženja. Lako se radi copy/paste.


Ja imam MSVS 2003 i opcija tajmiranja kompilacije nalazi se :
Tools > Options > Projects -> VC++ Build -> Build Timing

[Ovu poruku je menjao stargazer dana 23.03.2006. u 18:34 GMT+1]
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 18:35 - pre 219 meseci
Citat:
Pharos: Pa da je lako saznati ne bih pitao ovde :D
Znam da postoji način da se to izračuna.
A za ovo drugo sigurno postoji neko elegantnije rešenje od čiste fizikalije.
Šta ako imam 300 varijabli, nizova, etc.? Hoću li i to brojati jednu po jednu?

pOz

Na z-treningu nikada neces imati 300 varijabli, uvrh glave 10 razlicitih "varijabilnih objekata" istovremeno.
Nema potrebe za detaljnom analizom, samo kalkuliraj vece nizove.

[Ovu poruku je menjao NrmMyth dana 23.03.2006. u 19:40 GMT+1]
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 21:03 - pre 219 meseci
Za memorija mozes da proveris u Task Manager/Processes
 
Odgovor na temu

dimitar 16
Dimitar Misev
Makedonija

Član broj: 31509
Poruke: 134
62.162.20.*

Jabber: dimitarmisev@gmail.com


Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 21:09 - pre 219 meseci
A za vreme izvrsavanja (ne verujem da ti je bitno vreme kompajliranja), evo ti pascal kod, pa si ga prisposobi za C++

Code:

unit times;

interface

         uses dos;
         procedure pocetok;
         procedure krajj;

implementation
              var c1, c2, m1, m2, s1, s2,
                  st1, st2, m, s, st: word;

              procedure pocetok;
              begin
                   gettime (c1, m1, s1, st1);
              end;

              procedure krajj;
              begin
                   gettime (c2, m2, s2, st2);
                   writeln;
                   writeln;

                   if st2 < st1 then
                   begin
                        st:= st2 + 100 - st1;
                        dec (s2);
                   end
                   else st:= st2 - st1;
                   if s2 < s1 then
                   begin
                        s:= s2 + 60 - s1;
                        dec (m2);
                   end
                   else s:= s2 - s1;
                   if m2 < m1 then
                   begin
                        m:= m2 + 60 - m1;
                        dec (c2);
                   end
                   else m:= m2 - m1;
                   writeln (m,' : ',s,' : ',st);
                   readln;
              end;
end.
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.118.eunet.yu.



+2 Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 22:39 - pre 219 meseci
Hvala stargazer-u. Ovo me je interesovalo onako uopšteno. Z-trening sam spomenuo čisto da znate o čemu se radi.
@dimitar 16
Jel možeš ovo prevesti u C/C++?
Ne znam paskal, nikad ga nisam učio, a nešto mi se ne da da krenem s učenjem da bih uspeo ovo da dešifrujem :D

Hvala svima!

77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

stargazer
bgd

Član broj: 85916
Poruke: 117
*.eunet.yu.



Profil

icon Re: Vreme kompajliranja i zauzeta memorija23.03.2006. u 23:06 - pre 219 meseci
Citat:

Jel možeš ovo prevesti u C/C++?
Ne znam paskal, nikad ga nisam učio, a nešto mi se ne da da krenem s učenjem da bih uspeo ovo da dešifrujem :D


Ovo što je čovek napisao je jednostavno dobijanje trenutnog vremena, pre i posle izvršavanja koda između ta dva poziva i proračun koliko ga je proteklo.
With no lovin' in our souls and no money in our coats you can't say we're satisfied
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Vreme kompajliranja i zauzeta memorija24.03.2006. u 02:39 - pre 219 meseci
Uvrsti time.h u program. Definiraj dvije varijable tipa clock_t, recimo start i finish, i jednu double varijablu, recimo elapsed. Tamo gdje trebas pocet sa "stopanjem vremena", udri start = clock();, gdje trebas zavrsit finish = clock();.

razlika izmedju finish i start je razlika broja otkucaja procesora izmedju ta dva checkpointa. u time.h je definirana konstanta koja kaze koliko procesor ima otkucaja po sekundi, ilitiga CLOCKS_PER_SEC. znaci vrijeme izvsavanje koda izmedju prve i druge clock linije je

Code:

elapsed = (double)(finish - start) / CLOCKS_PER_SEC;


E sad, ako zelis sto preciznije, a nisu ti dostupni alati kao time pod UNIXima, ili neki malo profesionalniji analiticki alati, nisi u zavidnoj situaciji. Glupo je prvi checkpoint stavljat na pocetak main-a, a drugi na kraj, pa mjerit i negdje izbacit rezultat (ili debuggerom), jer ce same te komande dodatno povecat vrijeme izvsavanja programa, koje je bespotrebno. Isto tako, nece biti mjereno par assemblerskih komandi, tipa ulazak u main, setiranje enviromenta i izlazak iz main-a.

Evo sad dok ovo pisem mi je sinila ideja kako bi mogao ovo pod Windowsima. Ajd cek dok se rebootam...

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Vreme kompajliranja i zauzeta memorija24.03.2006. u 03:19 - pre 219 meseci
http://www.pc-tools.net/win32/ptime/

E to je to. Program slican time(1) alatu pod UNIXom, rezolucija mu je 5ms.

Citat:

D:\programs\registered\dcpp\bin>ptime gcc -c test.c -o test.exe

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes <[email protected]>

=== gcc -c test.c -o test.exe ===
test.c:8:2: warning: no newline at end of file

Execution time: 0.057 s

D:\programs\registered\dcpp\bin>


test.c je nesto ala "Hello World". Sistem je P4 2.0. Tesko da ces ista uspjet iskompajlirat ispod 5ms. Tako da je adekvatno.

Sta se tice drugog pitanja, tj. kako ces provjeriti koliko ti memorije zauzima program. Ako treba zauzece memorije, lista procesa na bilo kojem sistemu ce dati odgovor. Ako provjeravas koliko su zauzele tvoje interne varijable, a ne koristis nikakav analiticki softver, ima jedno dobro i jednostavno rjesenje. Caka je u tome da za sve varijable za koje radis dinamicku alokaciju, napravis svoju funkciju za dinamicku alokaciju. Nesto ala :

Code:

#include<stdio.h>
#include<stdlib.h>

size_t INTERNAL_MEMORY = 0;

void * my_malloc(size_t size);

int main()
{
    int a; INTERNAL_MEMORY += sizeof(int);
    int b; INTERNAL_MEMORY += sizeof(int);
    double c; INTERNAL_MEMORY += sizeof(double);
    
    char *goo = (char *)my_malloc(sizeof(char) * 100);
    
    printf("%d\n", INTERNAL_MEMORY + sizeof(size_t));
    system("PAUSE");
    return EXIT_SUCCESS;    
}

void * my_malloc(size_t size)
{
    void * temp = (void *)malloc(size);
    if(temp != NULL) INTERNAL_MEMORY += size;
    return temp;          
}


Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: Vreme kompajliranja i zauzeta memorija24.03.2006. u 05:48 - pre 219 meseci
Time (samo delimicno) resavas pitanje zauzete memorije, tacnije dobijas podatak koliko je memorije
dinamicki alocirano i nista vise. U tu racunicu nece biti uracunata velicina executable-a, stack-a,
data segmenta i slicno.

 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Vreme kompajliranja i zauzeta memorija27.03.2006. u 23:08 - pre 219 meseci
Citat:
tosa: Time (samo delimicno) resavas pitanje zauzete memorije, tacnije dobijas podatak koliko je memorije
dinamicki alocirano i nista vise. U tu racunicu nece biti uracunata velicina executable-a, stack-a,
data segmenta i slicno.


Istina, ali mislim da covjek zeli mjerit memoriju radi ovih zadataka. Sta bi se reklo da ti netko da zadatak s kojim radis operacije nad stringovima, a da pri tome zauzmes samo 2 kb memorije. Znaci ono sta programer moze direktno manipulirat iz koda. Koliko ja znam velicinu executablea odreduje kompajler, sta se tice stacka i data segmenta to mogu biti i OS specificne manipulacije.

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Vreme kompajliranja i zauzeta memorija

[ Pregleda: 3577 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.