Tak jo, zde jsou výsledky. Když jsem tuto optimalizační soutěž navrhoval, tipoval jsem limit tak kolem 100ms. Navrhoval jsem úlohu, která je dostatečně rychlá na základní naprogramování, má potenciál na optimalizaci a která by se dala celkem jednoduše paralelně zpracovávat. Výsledek mne opravdu překvapil.
Výsledky
Pro informaci: měření jsou na mém Core2Duo T8100 @ 2.10GHz.
Program očekává v adresáři patřičné vstupní data - viz generator.zip.
1. Radomír Sova - čas 21ms (Delphi 2007) (virusscan) - ASM, multithread - zdrojové kódy
2. Jan Král (2. pokus) (čas 24ms) - (Delphi 7) (virusscan) - ASM, multithread - zdrojové kódy
3. Neuromancer - čas 26ms (Delphi 7) (virusscan) - ASM, multithread - zdrojové kódy
4. Pepák (čas 30ms) (3. pokus) - (Delphi 5) (virusscan) - ASM, multithread - zdrojové kódy
5 - 6. Jiří Jelínek (čas 34ms) (3. pokus) - (Delphi 7) (virusscan) - PUREPASCAL, multithread - zdrojové kódy
5 - 6. Roman Kubín (čas 34ms) - (Delphi 5) (virusscan) - PUREPASCAL, multithread - zdrojové kódy
7. Dalibor Bradáč (čas 52ms) - (Delphi 2009) (virusscan) - PUREPASCAL, multithread - zdrojové kódy
8. Petr Barták (čas 117ms) - (nejlepší čas byl kompilován Delphi XE) (virusscan) - PUREPASCAL, single thread - zdrojové kódy
9. Radek Červinka (2. pokus) (čas 219ms) - (Delphi 2007) (virusscan) - PUREPASCAL, single thread - zdrojové kódy
10. Tomáš Kořínek (čas 224ms) - (Delphi 2009) (virusscan) - PUREPASCAL, single thread - zdrojové kódy
Mimo soutěž
Jan Král (4. pokus, navíc po časovém limitu - 17ms) - moc škoda! To snad ani není možné.
Takže vítězem je Radomír Sova s opravdu zajímavým řešením (škoda bez komentářů, přesto první cena). Osobně se mi moc líbí řešení Jana Krále, které ač je v ASM je velmi pěkně a čistě napsané, komentované a proto získává cenu poroty. A mimořádnou druhou cenu poroty získává moc pěkné řešení Jiřího Jelínka za PURE pascal, pěkný a rychlý kód (který se mi líbil o kapánek více než kód Romana Kubína) - dlouho jsem se nemohl rozhodnout koho z těchto tří odměnit. Výherce budu kontaktovat mailem.
Jinak pokud můžu doporučit tak se koukněte na zdrojáky i ostatních, a speciálně Pepáka, který tam má celkem dost textů proč a jak. Vůbec mi nevadilo (naopak myslím, že to ocení všichni), kdyby z toho vznikl i menší článeček s nějakými špeky a to platí i jako nabídka pro ostatní (něco co Vás překvapilo, zkušenosti atd.).
Doufám, že se Vám to líbilo a děkuji všem za jejich řešení a někdy zase …
Určitě to není naposledy (ale pár měsíců bude pauza). Mimochodem: momentální pravidla se mi celkem líbí, takže určitě bude ASM povolen (pokud to bude o optimalizacích). A samozřejmě můžete své pocity ventilovat dole v komentářích - v původním článku jsou komentáře hodně výživné :-)