Jazyk podobný C#

fish

Re:Jazyk podobný C#
« Odpověď #90 kdy: 20. 01. 2014, 23:22:43 »
Dovolim si nesouhlasit - pokud napisu aplikaci v OS DOS like, tak se na x86 da realtime aplikace napsat. Pokud se mylim, prosim o zduvodneni - drzme se OS, ktery jsem uvedl a pro priklad uvedme aplikaci, ktera bude snimat data z detektoru, zanalyzuje data a dle vyhodnoceni provede urcitou cinnost - napr. zaslani TCP paketu (priklad berte s rezervou ;))
Tohle není realtime aplikace. Realtime je třeba ABS v autě, kde se řeší úlohy typu snímám otáčky kola a když zjistím, že se to netočí dost rychle, musím do 10 ms (zaručeně!) sepnout čerpadlo ABS, jinak se stane něco nehezkého. V tom DOSu je třeba ovladač myši, který si občas vezme řízení v přerušení. Když nedokážu zaručit, že to bude do 10 ms (včetně všech ostatních věcí, které se mohou stát), tak DOS použít nemůžu.
no jeste me napadlo prepsat si preruseni svyma procedurama, ale precejen pouziti jednocipu by bylo nejspis rychlejsi i levnejsi :)


Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #91 kdy: 21. 01. 2014, 00:06:31 »
Jo, je to sranda s těmi překladači. Vzal jsem 1000 vektorů délky 300 (3*300 double) a spočítal RMSD každý s každým (1000*1000). Beželo to čtyřikrát, aby se JIT mohl "zahřát". Počítal se čas posledního běhu:

Java: 14.984s
C++/icc: 5.58s
C++/g++: 2.64s

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #92 kdy: 21. 01. 2014, 02:08:45 »
Java: 14.984s
C++/icc: 5.58s
C++/g++: 2.64s

Tak jsem si s tou Javou ještě trochu pohrál a dostal jsem z ní čas 5.893s.

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #93 kdy: 21. 01. 2014, 03:20:27 »
5.188s :)

asdadsad

Re:Jazyk podobný C#
« Odpověď #94 kdy: 21. 01. 2014, 03:40:28 »
Beželo to čtyřikrát, aby se JIT mohl "zahřát".
To pocitas nieco zle alebo je niekde chyba. Odporucam bezat citlive kusy kodu tak 20 000 krat, aby to zacalo davat vyznam.


Re:Jazyk podobný C#
« Odpověď #95 kdy: 21. 01. 2014, 08:10:06 »
Beželo to čtyřikrát, aby se JIT mohl "zahřát".
Čtyřikrát v rámci jednoho procesu? Jak to pak měříte, jak k tomu připočítáte čas startu JVM a kompilace? Pokud to bylo čtyřikrát spuštěno z příkazového řádku a tedy čtyři různé procesy, JIT se nijak „nezahřeje“ – při každém běhu běží znova od začátku. JIT si neukládá žádné informace mezi jednotlivými spuštěními aplikace, každé spuštění aplikace je pro něj poprvé. Opakované spuštění pomůže nejvýš tomu, že OS načte potřebné soubory do cache. Ale k tomu by mělo stačit spustit to dvakrát. A dělá se to tak u všech testů a první se neměří, protože doba načítání z disku nás zpravidla nezajímá. Nebo je možné to spouštět rovnou z RAMdisku.

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #96 kdy: 21. 01. 2014, 08:16:56 »
To pocitas nieco zle alebo je niekde chyba. Odporucam bezat citlive kusy kodu tak 20 000 krat, aby to zacalo davat vyznam.

Čemu říkáš citlivý kus kódu? RMSD výpočet proběhl 3000000 krát, než se začalo něco měřit.

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #97 kdy: 21. 01. 2014, 08:23:36 »

Re:Jazyk podobný C#
« Odpověď #98 kdy: 21. 01. 2014, 09:57:24 »
Zase až tak mne nepodceňuj. Počítalo se to podobně jako u toho Mandelbrota. Viz:
Takže se měří jen doba provádění toho kódu, start JVM v tom započítán není a kompilace nejspíš také ne. To je řekl bych dost podstatné…

shini

Re:Jazyk podobný C#
« Odpověď #99 kdy: 21. 01. 2014, 10:02:46 »
Jo, je to sranda s těmi překladači. Vzal jsem 1000 vektorů délky 300 (3*300 double) a spočítal RMSD každý s každým (1000*1000). Beželo to čtyřikrát, aby se JIT mohl "zahřát". Počítal se čas posledního běhu:

Java: 14.984s
C++/icc: 5.58s
C++/g++: 2.64s

Muzu poprosit o zdrojaky?:)

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #100 kdy: 21. 01. 2014, 10:10:30 »
Takže se měří jen doba provádění toho kódu, start JVM v tom započítán není a kompilace nejspíš také ne. To je řekl bych dost podstatné…

Přesně tak, meří se jen provádění vlastního výpočtu, ale stejně je to u té C++ verze.

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #101 kdy: 21. 01. 2014, 10:20:44 »
Muzu poprosit o zdrojaky?:)

Pošlu ti je na mail, pokud chceš.

shini

Re:Jazyk podobný C#
« Odpověď #102 kdy: 21. 01. 2014, 10:38:03 »

Jakub Galgonek

Re:Jazyk podobný C#
« Odpověď #103 kdy: 21. 01. 2014, 10:53:49 »

Daniel Kozak

Re:Jazyk podobný C#
« Odpověď #104 kdy: 21. 01. 2014, 11:42:46 »
Jo, je to sranda s těmi překladači. Vzal jsem 1000 vektorů délky 300 (3*300 double) a spočítal RMSD každý s každým (1000*1000). Beželo to čtyřikrát, aby se JIT mohl "zahřát". Počítal se čas posledního běhu:

Java: 14.984s
C++/icc: 5.58s
C++/g++: 2.64s

No ja si vzal ten priklad Mandelbrot a jen minimalne jej upravil a vysledkem je ze
 v jazyce Java to trva cca 1.148s
 v jazyce D to trva : 0s

Tady se ukazuje jak snadno se da v benchmarcich fixovat.  ;D