Měření rychlosti programu a využití paměti

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Kartmen
Nováček
Nováček
Registrován: 14. úno 2005

Měření rychlosti programu a využití paměti

Příspěvek od Kartmen »

Zacinam s programovanim a nevim, v cem nejlip zjistim, jak je kod dobre napsanej. Pokud je nekolik moznosti jak se dostat k cili, tak potrebuju najit tu, ktera zabere procesoru nejmin casu. Proste neco v cem po kazdej uprave kodu rychle zjistim jakej to melo vliv na rychlost a jak byla vyuzita pamet.
sheriff.wiggum
Začátečník
Začátečník
Uživatelský avatar
Registrován: 08. dub 2005
Bydliště: Skotsko/Ceska republika
Kontaktovat uživatele:

Příspěvek od sheriff.wiggum »

jazyk? :stupid:
Kartmen
Nováček
Nováček
Registrován: 14. úno 2005

Příspěvek od Kartmen »

No VisualBasic nebo C++ , pokud je teda neco primo co to udela ve fazi kodu. Ale stacilo me neco i pro zkompilovanej program.

Edit: a to k cemu to hlavne chci je VisualBasic v Excelu s tim, ze vysledek je normalne v listu excelu, kde vyuziva funkce z toho Basicu.
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

V C++ lze zjistit cas vykonani programu pomoci QueryPerformanceCounter(), spotrebu pameti nejjednoduseji (ne nejlepe) pres Taskmanager windowsu.
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Kartmen
Nováček
Nováček
Registrován: 14. úno 2005

Příspěvek od Kartmen »

QueryPerformanceCounter() to meri realnej cas jak to trvalo, nebo to i cas zohlednuje na kolik byl programem vyuzit procesor (pokud me treba bezi leccos na pozadi)?

A jeste teda neco, co to zmeri v tom VisualBasicu, co je v Excelu.
Nebo jak byste co nejlip napsali funkci, ktera treba porovnava dva ruzne dlouhe retezce znaku?
€agle
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 13. lis 2003
Bydliště: Vlastní 3D svět :)
Kontaktovat uživatele:

Příspěvek od €agle »

No lze zmerit realnej cas behu aplikace, ale je to trosku slozitejsi, tady je kod:

Kód: Vybrat vše

LARGE_INTEGER Rate, StartClock, EndClock;
double invRate;
void Init()
{
 QueryPerformanceFrequency((LARGE_INTEGER*) &Rate);
 invRate = 1.0 / (double) Rate;
 QueryPerformanceCounter((LARGE_INTEGER*)&StartClock);
}

double ftime(void) 
{
  QueryPerformanceCounter((LARGE_INTEGER*)&EndClock);
  return (double)(EndClock-StartClock)*invRate;
}
Init zavolas na zacatku programu, pomoci ftime muzes kdykoli ziskat cas behu v double presnosti.
V normalnim VB by to jit melo (s patricnymi upravami), jelikoz QueryPerformanceCounter() je normalni funkce API, jestli to pujde i v tom Excelovskym netusim...
Na mereni vyuziti procesoru koukni sem a sem
Jinak co presne myslis tim porovnava dva ruzne dlouhe retezce znaku? Co chces jako zjistit? Kde se lisi, ktery je delsi, jestli jsou stejny, nebo co?
Eagle3D Engine under developement

Hledáme do firmy schopného ASP/VB.NET/C# programátora, více po SZ
Kartmen
Nováček
Nováček
Registrován: 14. úno 2005

Příspěvek od Kartmen »

€agle píše: Jinak co presne myslis tim porovnava dva ruzne dlouhe retezce znaku? Co chces jako zjistit? Kde se lisi, ktery je delsi, jestli jsou stejny, nebo co?
Sory, nak sem myslel, ze to je z toho jasny, ale porovnanim teda myslim retezec A (<>=) retezec B a ze jde o znaky (a chci jen jednoduchej priklad) tak jen pokud jsou shodny.

A konkretne je 1. seznam s cca 20000 retezcema delky od 14 do 22 znaku a 2. s cca 2000 delky od 14 do 22 znaku. A hleda se, kdy jsou retezce z 1. a 2. seznamu shodne. Pricemz kazdy retezec je v obou seznamech max. jednou.
pavel.minarik
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 03. čer 2003
Bydliště: Brno
Kontaktovat uživatele:

Příspěvek od pavel.minarik »

na ja, školní úloha, "předpokládejte, že každá řetšězec se může vystytovat nejvýše jednou", to je bohužel mimo realitu

další rada zní: dobře napsanej kód neexistuje, v dnešní době nároky na paměť nebo cpu time fakt neřeš, začni v klidu a v případě kritických aplikací optimalizuj, jinak není co řešit
Pavel Minarik @ Dell Latitude 7300 (bohužel moc topí, nedoporučuju)
Kartmen
Nováček
Nováček
Registrován: 14. úno 2005

Příspěvek od Kartmen »

pavel.minarik píše:na ja, školní úloha, "předpokládejte, že každá řetšězec se může vystytovat nejvýše jednou", to je bohužel mimo realitu
No on tam muze bejt fakt max jednou (ty retezce sou uz vysledkem jinyho programu, kterej identicky retezce odstrani) a na mim 300Mhz vraku to fakt dost trva, tak sem jen chtel vedet lestli to de lip.

Mam to zatim napsany tak, ze nejprve se porovnaj delky retezcu a pokud sou stejne delky, tak pokud je retezec delsi nez 7 znaku (psal sem to obecne ne primo na to viz vyse), tak pokud se rovnaji 2 znaky (na nejvice menene casti retezcu - retezce muzou mit temer stejny pocatek, ale cim vic doprava tim vice se meni napr. aaaaaaaa, aaaaaaab, aaaaaaac, aaaaaaba..), tak se porovna cely retezec.

A jeste dotaz je v exelovskym VB, neco podobneho jako containery v C++.
Odpovědět

Zpět na „Programování a web“