Diskuze: Machr na C# .NET - Binární sčítačka
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Vlastník

Zobrazeno 50 zpráv z 129.
//= 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.
U 8bitu se moc optimalizaci vymyslet neda, nechces to rozsirit na cela unsigned cisla?
Dobře, změna zadání, číslo má 32 číslic.
A jak to je teda s tim jazykem, C# je doporuceny nebo povinny jazyk?
Co je SSE4 nevím C# je
povinný, jinak by ta soutěž moc neměla smysl, vyhrál by to program v ASM
SSE4 je instrukcni sada, umi to novejsi procesory, tam se da tohle resit
jednou instrukci
Ok, prave s asm by to bylo nefer - viz ta jedna instrukce
Můžu se zúčastnit tento týden obou?
Tak na radu Satika ještě jedna změna, generování se nepočítá do měřeného času, jde tedy jen o algoritmus součtu cifer tak, aby to bylo co nejrychleji.
Mám výsledky ukládat nebo stačí jedna promněná, kterou vždy vypíši a pak vynuluji?
Nemusíš ji ani vypisovat, ale musí se provést přiřazení výsledku do proměnné. Pak se může zapomenout.
Nemáte někdo nějaký orientační výsledek? A v čem to mám měřit? Asi
v uplynulých ticích. V milisekundách je to hodně málo. Možná by to
chtělo zvětšit počet čísel
Ono tam bylo předtím i to generování, tak jsem dal jen 100.000. Pro jaký počet by to dávalo lepší výsledek?
U milionu mam kolem 7 milisekund, tak treba 10m?
To je dobrá otázka Co
myslíš Luboš Běhounek Satik?
Dal bych release
I kdyz ono v C# mezi nimi neni takovy rozdil jako treba v C++ a vetsinou jsou ty casy (skoro) stejne.
Má už někdo nějaký výsledek(čas)?
Sakra To mozna bude
tim. Intel Core i5 3210m
EDIT: Ale koukám, že ty taky nemáš nic starého. Podle benchmarků je to docela vyrovnané. Jednou vítězí i5, jindy 2 Quad
no tohot se asi nakonec nezúčastním
1.) sloník v PHP
2.) škola - mám za du udělat obrázky do animáku.
Já nevim, asi neumím vytvořit účinný algoritmus. Mně to 1M dělá 529ms.
Posli kod, podivame se
Ono existuje par triku, jak tohle resit jinak, nez dlouhym cyklem.
A take muzes vyuzit vice jader procesoru
Hm, kdyz pustim ten exac mimo visual studio, tak to ma 10M cisel za 10 ms,
zatimco ve VS 40 ms :/
(oboji v releasu)
Aha, takže jsi diskvalifikoval ty 100jádrové Atomy, které ještě
neexistují
No je pravda, že když to budeme testovat na 1 stroji, není vlastně důvod aby to nejelo na více jádrech.
Na Pentiu E6300 sem se dostal na 32ms
Ono to sice pojede na vícejádrovém procesoru, ale jen v jednom jádře. Takže Atom má se svým slabším výkonem v takových testech smůlu.
Změna zadání, povolil jsem vícevláknovou aplikaci
Poslat buď mě do soukromých zpráv nebo v neděli před třetí sem do vlákna.
Dík moc za odpověď. Teď si alespoň budu moct odhadnout finální čas.
Na tak krátkých časech to v některých případech může znamenat i
časovou ztrátu. Hodně záleží na tom, jak se to do těch vláken rozdělí.
Někdy je skutečně výhodnější to nechat v jednom
vsak nemusis mit vlakna pro kazde cislo, ale treba jen pro pulku
vygenerovanych cisel
Zajímavé, zkusil jsem si to v C i v Javě. C bylo jen o 16 % rychlejší.
To je zajímavé. Mohl bych z výsledků poté udělat článek.
posli na ukazku kod, je mozne, ze by se to dalo v c nejak optimalizovat
Není to přesně podle zadání (soutěže se neúčastním) a ani to není nijak optimalizováno:
#include <stdio.h>
void main() {
int i, j;
int soucet = 0;
for (i = 0; i < 10000000; i++) {
for (j = i; j != 0; j >>= 1) {
soucet += j%2 ;
}
}
printf("%8d\n", soucet);
}
Zobrazeno 50 zpráv z 129.