Diskuze: Machr na algoritmy - benchmark pevného disku
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 50 zpráv z 54.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Máme použiť nejakú vstavanú knižnicu, alebo na to existuje nejaký
algoritmus? V texte spomínaš algoritmus, avšak o ničom takom som nenašiel
ani zmienku .
ten máš vymyslet. Předpokládám že víte, že externí knihovny či hotová řešení jsou zakázané.
Ale musíš použiť aspoň nejakú knižnicu na prácu s USB... Potrebuješ vedieť minimálne aktuálnu rýchlosť, a potom to cez nejaký Timer vypočítať...
Použij jen to co má C# v základu. Mělo by to stačit.
Napadol ma jeden spôsob:). Je JIT veľký časový sklz? Bude to vadiť?:)
Nevím co vymýšlíš, ale na měření času použij asi nejlépe StopWatch, ty samozřejmě použít můžeš.
Jasné StopWatch použijem. Rozmýšľam len ako obísť Just in Time compiling.
pokud chceš, můžeš. Pokud nechceš, nemusíš.
Prepáč, že otravujem, ale mám ešte poslednú otázku . Dĺžka behu File.Copy() je
Writing speed fashky, alebo reading speed harddisku + writing speed flashky?
Je možné použít vlastní dll nebo jiný vlastní soubor a použít ho jako embedded resource?
pokud se nejedná o externí knihovnu, tak jo.
Ahoj,
ten progress bar má ukazovať zmenu rýchlosti oproti predošlému meraniu?
Ten progressbar má ukazovat, že se něco děje. Nevím jak to měříš, ale existují metody kdy něco děláš delší dobu a progressbar tam je proto aby to uživatel věděl. Ono přeci jen "Aplikace XYZ neodpovídá" není moc zajímavé.
Ale záleží na tobě, třeba to tobě v aplikaci vyhovuje jinak.
Nie je to v cykle ani ničom podobnom, tým pádom to nemám ako volať...
pokud tvůj program vyplivne výsledek do 2 sekund, tak to není tak důležité.
Tak posílám svůj program. Je ve složce Debug, ne Release. Megabity za sekundu tam sice skutečně udávají megabity za sekundu, ale to číslo není moc užitečné, protože třeba video se bude zapisovat úplně jinou rychlostí.
Ten program kopíruje sám sebe, takže když je debugován, kopíruje jen vshost.
Môžem použiť externú knižnicu na vytváranie grafov? WPF nič také
natívne nemá .
ne, napiš si svoji. Stačí nějaký jednoduchý, nemusí to mít 300 efektů a tak. Dá se to naprogramovat zhruba za hodinu.
Tak dobre Aj tak som o tom
rozmýšľal.
http://leteckaposta.cz/470412835
Exe soubor je v Debug složce.
Při testu disku C, prosím spouštět jako správce
Zadání pěkné, ale velmi špatná volba jazyka. C# má totiž zápis a čtení pouze s bufferem. Tzn. že neměříme přímo rychlost disku, ale i něco navíc. Pro tohle by byly mnohem lepší jazyky jako Java, C, C++.
Jdu se zúčastnit, snad jsem nenapsal moc velkou blbost / prasárnu (napsal jsem to za dnešní dopoledne). Umí to kreslit grafy, má to tři druhy testů (podle délky) a při spuštění to ukáže seznam dostupných disků. Výsledky to zaokrouhluje na 2 desetinná místa.
Ahoj,
po týždni práce sa pripájam aj ja.
Funkcie aplikácie:
V programe je použitá vlastná knižnica (library) na vytváranie
grafov. Táto knižnica zatiaľ obsahuje len čiarový graf, postupne
ju môžem doplniť o ďalšie druhy. Graf je plne prispôsobiteľný na
ľubovoľnú veľkosť.
Link na knižnicu:https://www.dropbox.com/…BIb9BCawT_Ra?dl=0
Program:https://www.dropbox.com/…0R_WEAUn53fa?dl=0
Pre testovanie je potrebné v app.manifest zmeniť tento riadok:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
na tento:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
Ikonka programu je pod voľnou licenciou.
V kóde sa nachádzajú alternatívne spôsoby na meranie rýchlosti
čítania/zápisu (sú zakomentované).
Trochu jsem to vylepšil:
https://www.dropbox.com/…ark_v1_1.zip?dl=0
Přidal jsem nějaké komentáře do kódu pro lepší čitelnost, opravil jsem chybu v grafech a trochu je zlepšil.
Ukazuje ti to příšerně velké hodnoty. A výpočet rychlosti máš dost podezřelý:
writingspeed = 120000/writingtime;
readingspeed = 120000/readingtime;
už jenom proto, že zapisuješ 15.něco MB, ale pro výpočet použiješ 120000 něčeho, dělíš to milisekundami a pak napíšeš MB/s
Mají to být megabity, pokud má megabajt 8 megabitů, 1581000/time v milisekundách. Na flašce Kingston 32GB to ukazuje writing speed co je v dokumentaci, ale na druhé zase ne, tak nevím.
tam má být 15krát8krát1000/
U mého flash disku to ukazuje mnohonásobek skutečné rychlosti i když to přepočítám z Mb/s na MB/s (10-násobek), což je podezřelé
Výborně! Po delší době se někdo moji soutěže zúčastnil. V průběhu
testování jsem si však musel zjistit teoretickou propustnost USB2.0 (fleška
s kterou jsem testoval), protože někteří z přihlášených vypsaly vyšší
hodnotu. Ona ta pomalá
fleška nakonec asi není tak pomalá, jak v praxi je.
dirtyjobs
máš zajímavé GUI, možná až moc šedé. Zajímavě jsi si obarvil progress
bar. Bohužel tvůj zajímavý výpočet přináší velmi úsměvné výsledky.
Tvůj test mi řekl, že moje pomalá USB 2.0 fleška čte rychlostí 5,2 Gb/s,
což fakt nečte, to je 10× (!) víc než dosahují drahé SSD. Kód je sice
nahuštěný v jednom souboru, ale v každé části už od pohledu tuším co
dělá, takže palec nahoru. Příště to ještě můžeš zkusit se třídami
ať je to univerzálnější.
nogare (-5 bodů za nepojmenovaný soubor)
Tvoje řešení je má velmi pěkné a čisté GUI. Nicméně se už v
popiscích objevuje čecho-angličtina (např. write a malý soubor). Nepoužil
jsi žádný našeptávač dostupných pevných disků a když tam zadám
neplatné písmeno vyhodí to neošetřenou výjimku. Test trvá docela dlouho a
aplikace se mi u něj zasekla. Test vyplivl rozumné hodnoty, některým bych i
věřil, ale v praxi stejně vídám jiné (řádově). Určitě však je
hloupost, že moje pomalá USB2.0 fleska má rychlost čtení zhruba
srovnatelnou s pomalejšími SSDčky (302,78 Mb/s). Kód máš psaný všechen v
obsluze button1_click, máš tam (zbytečně) prázdnou obsluhu form_load a
používáš nevýstižné názvy. Resp. netuším jaký význam mají
proměnné b1, swr2 atd. Chtělo by to v tomto případě tedy, alespoň
nějaký komentář, nebo na konci refaktorovat na ne-zkratkové názvy.
spixy16 (-5 bodů za nesprávný formát komprimované složky)
Zajímavě vyřešený máš už samotný začátek - výběr disku. Nemůže se
stát, že někdo vybere špatný. Dokonce máš ošetřenou chybu při výběru
CD-ROM (sakra, už mi dochází nápady jak to shodit ). Nádherně máš vyřešení
výběr kol a tvoje výsledky jsou skutečně přesné. Kód je objektový, lze
vždy poznat hned na první pohled co, která část dělá. Formulář je
čistý a jednoduchý. Škoda, že sis nepřečetl v jakém formátu se
odesílá řešení.
stevkopr
Uživatelské rozhraní vypadá čistě, je jednoduché a přehledné. Graf je
pěkný, ale nepřijde mi moc užitečný. Možná tlačítko R by mohlo mít
třeba nějaký piktogram, protože R může znamenat více věcí. Měření
zápisu je celkem přesné, bohužel zápis na mojí pomalé USB 2.0 flešce byl
zhruba srovnatelný s SSD, což je někde řádově jinde. Vyhrál jsi si se
všemi detaily okolo, což je super věc, hodí se to, na uživatele působí
aplikace mnohem lépe. Kód je objektový, dobře komentovaný a perfektně jsi
oddělil i graf.
Zdeněk Pavlátka
Máš asi nejlépe vymyšlené vybírání disku. Možná by to bylo trochu
horší, kdybych měl těch disků třeba 10 nebo 15. Nezapomeň, že to nemusí
být nutně disky, mohou to být třeba připojené oddíly a tak. Grafy jsou
užitečné, výsledky přesné. U grafů by to chtělo vyzdvihnout o jaký graf
se jedná (zvětšit nadpis) a nebylo by špatné třeba grafy pro reading
sloučit do jednoho. Celkem jsem se v tom ztrácel co je co. V kódu jsem se
nedostal k nalinkovanému souboru HardDiscTest (musel jsem ho nějak
přesunovat). Kód je fajn, ale nebylo by na chybu volit nějaké
výstižnější názvy proměnných, fakt vůbec netuším, co je proměnná p,
par, rs. Máš tam i prázdné obsluhy událostí. Nebylo by špatné zvážit,
oddělení vykreslování grafů do jiného projektu, tak jak to udělal
stevkopr.
Placku si (ačkoliv jsem zvažoval více placek) odnáší spixy16, který řešení publikuje, potom zažádá <a href="http://www.itnetwork.cz/portfolio/355">správce ocenění</a> o placku a naučí se vytvářet zazipované složky.
Gratuluji vítězi a doufám, že se brzy uvidíme u nějaké další
soutěže.
Veľmi pekne ďakujem za ohodnotenie. Škoda, že si sa napokon nerozhodol pre viac placiek
.
Inak, ako si sa dostal k takej vysokej hodnote u toho USB? Mne to dávalo takmer
vždy reálne výsledky. K rýchlosti SSD som sa však u USB 2.0 nestretol
nikdy. Ešte raz
ďakujem.
Edit: Inak to tlačidlo som zakomentoval, pretože som to v tej rýchlosti nešlo zfunkčniť.
Já nevím jak ti to měří, když jsem to testoval tak mi to vypsalo 700 (a něco málo) co už si nepamatuju. Navíc ti ten graf nějak podezřele klesá (i u čtení, i u zápisu), to není normální chování. přikládám screenshot (700Mb mě nenapadlo screenshotovat), takže se musíš spokojit jen s 500. Vidíš tam i ten pokles. Z 500 na 200. Zápis je v poho, teď možná trochu nižší než normálně.
Taktiež by som rád zablahoželal víťazovi.
Ten pokles nie je o grafe, ale o nameranej rýchlosti... Graf iba ukáže nameranú rýchlosť. Nechápem prečo taká nízka hodnota. Skúšal som to na veľkom množstve kľúčov...
já vím co ukazuje graf, ale ta fleška běžně pracuje na rychlosti okolo 20 Mb/s. 350 Mb/s je někde jinde, na tom začínají ty nejpomalejší SSD. Navíc ta ryhclost je víceméně konstantní, rozdíl 300 Mb/s je hodně.
pro tvůj dobrý pocit jsem vyzkoušel i další flešku a výsledek stejný. Zajímavé je, že první výsledek mi vypíše vždycky 500.
Len pre ilustráciu dávam screenshot. Na USB mi to dá maximum 80 MB/s pri
rýchlosti čítania.
Zobrazeno 50 zpráv z 54.