Fraps log prohlížeč v2.0
Napsal: stř 20. úno 2013, 15:11
Po dlouhy dobe je tu konecne finalni verze. S vyvojem jsem zacal pred vice nez rokem. Puvodne to mel byt jen prohlizec pro me vlastni testy HW. Prvotni plan bylo jen vykresleni klasickych prubehu fps a "nejaky znazorneni" microstutteringu. Tehdy jeste neexistoval zadny program s podobnym zamerenim (nebo jsem aspon o zadnem nevedel), takze tohle mel byt unikatni nastroj na porovnani a analyzu namerenych vysledku. Vzhledem k tomu, ze jsem chtel hlavne porovnavat mezi sebou ruzny grafiky, rozhodl jsem se pro zobrazeni az ctyr prubehu najednou. Bylo to relativne obtizne naprogramovat, ale pozdeji se ukazalo, ze to byl dobry krok... Zadny z pozdeji vytvorenych programu totiz nic podobneho neumi a lze prohlizet vzdy jen jednu sadu dat.
V unoru 2012 byla hotova prvni verejna verze. Moc toho teda neumela, jen klasicky prubehy a vypocet "realnych fps" z frametimes. Samozrejme jsem mel v planu s vyvojem pokracovat... jenze nebyl moc cas a ani chut. Takze jsem projekt odlozil k ledu a venoval se jinym vecem. Vratil jsem se k nemu az loni na podzim. Rozhodl jsem se trochu rozvinout analyzu frametimes - vytvoril jsem histogram. Ten uz o rozlozeni snimku a hratelnosti neco vypovi, ale porad to neni ono. Takze jsem se nakonec vrhnul i na posledni, nejslozitejsi cast. Vykresleni podrobneho grafu frametimes jsem sice planoval uz od zacatku, ale obtiznost implementace me dlouho odrazovala.
Bylo dost tezky to cely rozchodit (hlavne kvuli zpusobu programovani), ale nakonec se povedlo. Posledni krok bylo rucni otevirani souboru. Prvotni plan byl otevirat soubory z predem vytvoreny adresarovy struktury. To stale funguje, ale hodi se jen na hromadne prohlizeni. Samozrejme jde podle navodu vytvorit jednoduchou strukturu a tam pak umistit vlastni soubory, ale to je prilis slozity a nepohodlny. Takze jsem teda doplnil funkci pro rucni otevirani souboru, s tim, ze je zachovana moznost otevrit nekolik sad dat.... a ty mezi sebou porovnavat. Nakonec jsem doplnil par drobnosti a opravil nektery stary chyby.... a finalni verze je na svete.
No, dost bylo reci, ted k programu samotnymu:
Hlavni okno, odsud se ovlada vsechno. Nejdulezitejsi je /v pripade hromadneho prohlizeni/ vyber dat pro zobrazeni. Dale se tady zobrazi klasicky min/max/avg pro kazdy z prubehu a vpravo dole jsou z frametimes spocitany realny fps (popisu dale) a jejich procentualni vztah k avg.

Histogram. Z frametimes se vypocitaji sloupce (pocet jde nastavit). To probiha tak, ze se prepocitaji frametimes na fps (1000/frametimes), vezme se rozsah min - max a podle toho se rovnomerne vytvori sloupce. Kazdy sloupec ma rozsah fps od - do... a pocita se kolik snimku do daneho sloupce patri. Zelene sloupce znaci, ze tyto snimky se vejdou do min-max rozsahu z klasickeho prubehu. Cerne sloupce naopak jsou mimo tento rozsah. Sem spadaji zejmena ruzne propady a ulety, ktere v klasickem prubehu nejsou videt. Podle poctu snimku v zelenych/cernych sloupcich se spocita MS level. Je to jen orientacni cislo, spis pro zajimavost.
Dole v histogramu jsou prumerne fps pro kazdy sloupec. Nahore je v procentech vyjadreno kolik snimku spada do daneho sloupce.

A tady je podrobny graf prubehu - spocitany z frametimes. Neni to prubeh latenci (jako v konkurencnich programech), ale prubeh okamzitych fps (fps=1000/frametimes). Pripada mi to prirozenejsi - jsme zvykli porovnavat fps, ne latence.
Cervena cara je klasicky prubeh preneseny z hlavniho okna. Nepasuje uplne do podrobneho grafu, protoze ten je zalozen na poctu snimku, kdezto normalni prubeh je zalozen na case.
Priklad: Mame prubeh s pomalou a rychlou pasazi. Polovina casu je pri 60fps, polovina pri 30fps. Rychlejsi cast vygeneruje dvojnasobek snimku, nez pomalejsi.... proto se podrobny a klasicky prubeh rozchazi.

Graf je mozne libovolne priblizit, ovsem jen na x ose. Pokud je graf zvetseny, je mozno ho posunovat pomoci slideru nahore v okne. Dale je mozne umistit do grafu na libovolne misto az dve cary. Hodnota, kterou predstavuji se vypise na ose Y. Cary se polozi levym tlacitkem mysi (po zaskrtnuti checkboxu) a odstrani pravym tlacitkem.
Svetle modra cara predstavuje "realne fps". Ty se spocitaji z frametimes nasledujicim zpusobem:
Spocitaji se hodnoty fps pro jednotlive snimky, seradi vzestupne, vezme se spodnich (nejpomalejsich) 25% a spocita z nich klasickej prumer. Tahle hodnota vesmes vyjadruje takovy "novy avg fps". Urcitou vypovidajici hodnotu to ma, propadu pod tuhle hranici by moc byt nemelo. Rozhodne je to blizsi realny hratelnosti, nez klasika avg fps.

A ted jeste par slov k nastaveni programu. Jde nastavit barvy a sirku cary pro klasicky prubehy v hlavnim okne. Histogram a podrobny graf jsou napevno. Dale pak pocet sloupcu histogramu. A posledni vec je vyhlazovani textu a car.... me osobne se to nelibi, ale je tu moznost volby.

Otevreni souboru je celkem jednoduchy, jen pripominam, ze je nutne otevrit oba, jinak nebude program fungovat.

To je asi tak vsechno. Kdo ma zajem, muze vyzkouset.
Pripadny chyby hlaste, pokusim se je opravit.
http://www.ulozto.cz/xHQbLmf/fraps-log- ... c-v2-0-zip
Chyby:
v podrobnem grafu obcas zmizi nula na ose X -- vim o tom, ale opravit se (dosud) nepovedlo
neplynuly posun podrobneho grafu pri zmene smeru -- zrejme je to vlastnost vykreslovani, neda se s tim nic delat
V unoru 2012 byla hotova prvni verejna verze. Moc toho teda neumela, jen klasicky prubehy a vypocet "realnych fps" z frametimes. Samozrejme jsem mel v planu s vyvojem pokracovat... jenze nebyl moc cas a ani chut. Takze jsem projekt odlozil k ledu a venoval se jinym vecem. Vratil jsem se k nemu az loni na podzim. Rozhodl jsem se trochu rozvinout analyzu frametimes - vytvoril jsem histogram. Ten uz o rozlozeni snimku a hratelnosti neco vypovi, ale porad to neni ono. Takze jsem se nakonec vrhnul i na posledni, nejslozitejsi cast. Vykresleni podrobneho grafu frametimes jsem sice planoval uz od zacatku, ale obtiznost implementace me dlouho odrazovala.
No, dost bylo reci, ted k programu samotnymu:
Hlavni okno, odsud se ovlada vsechno. Nejdulezitejsi je /v pripade hromadneho prohlizeni/ vyber dat pro zobrazeni. Dale se tady zobrazi klasicky min/max/avg pro kazdy z prubehu a vpravo dole jsou z frametimes spocitany realny fps (popisu dale) a jejich procentualni vztah k avg.

Histogram. Z frametimes se vypocitaji sloupce (pocet jde nastavit). To probiha tak, ze se prepocitaji frametimes na fps (1000/frametimes), vezme se rozsah min - max a podle toho se rovnomerne vytvori sloupce. Kazdy sloupec ma rozsah fps od - do... a pocita se kolik snimku do daneho sloupce patri. Zelene sloupce znaci, ze tyto snimky se vejdou do min-max rozsahu z klasickeho prubehu. Cerne sloupce naopak jsou mimo tento rozsah. Sem spadaji zejmena ruzne propady a ulety, ktere v klasickem prubehu nejsou videt. Podle poctu snimku v zelenych/cernych sloupcich se spocita MS level. Je to jen orientacni cislo, spis pro zajimavost.
Dole v histogramu jsou prumerne fps pro kazdy sloupec. Nahore je v procentech vyjadreno kolik snimku spada do daneho sloupce.

A tady je podrobny graf prubehu - spocitany z frametimes. Neni to prubeh latenci (jako v konkurencnich programech), ale prubeh okamzitych fps (fps=1000/frametimes). Pripada mi to prirozenejsi - jsme zvykli porovnavat fps, ne latence.
Cervena cara je klasicky prubeh preneseny z hlavniho okna. Nepasuje uplne do podrobneho grafu, protoze ten je zalozen na poctu snimku, kdezto normalni prubeh je zalozen na case.
Priklad: Mame prubeh s pomalou a rychlou pasazi. Polovina casu je pri 60fps, polovina pri 30fps. Rychlejsi cast vygeneruje dvojnasobek snimku, nez pomalejsi.... proto se podrobny a klasicky prubeh rozchazi.

Graf je mozne libovolne priblizit, ovsem jen na x ose. Pokud je graf zvetseny, je mozno ho posunovat pomoci slideru nahore v okne. Dale je mozne umistit do grafu na libovolne misto az dve cary. Hodnota, kterou predstavuji se vypise na ose Y. Cary se polozi levym tlacitkem mysi (po zaskrtnuti checkboxu) a odstrani pravym tlacitkem.
Svetle modra cara predstavuje "realne fps". Ty se spocitaji z frametimes nasledujicim zpusobem:
Spocitaji se hodnoty fps pro jednotlive snimky, seradi vzestupne, vezme se spodnich (nejpomalejsich) 25% a spocita z nich klasickej prumer. Tahle hodnota vesmes vyjadruje takovy "novy avg fps". Urcitou vypovidajici hodnotu to ma, propadu pod tuhle hranici by moc byt nemelo. Rozhodne je to blizsi realny hratelnosti, nez klasika avg fps.

A ted jeste par slov k nastaveni programu. Jde nastavit barvy a sirku cary pro klasicky prubehy v hlavnim okne. Histogram a podrobny graf jsou napevno. Dale pak pocet sloupcu histogramu. A posledni vec je vyhlazovani textu a car.... me osobne se to nelibi, ale je tu moznost volby.

Otevreni souboru je celkem jednoduchy, jen pripominam, ze je nutne otevrit oba, jinak nebude program fungovat.

To je asi tak vsechno. Kdo ma zajem, muze vyzkouset.
Pripadny chyby hlaste, pokusim se je opravit.
http://www.ulozto.cz/xHQbLmf/fraps-log- ... c-v2-0-zip
Chyby:
v podrobnem grafu obcas zmizi nula na ose X -- vim o tom, ale opravit se (dosud) nepovedlo
neplynuly posun podrobneho grafu pri zmene smeru -- zrejme je to vlastnost vykreslovani, neda se s tim nic delat