.[ ČeskéHry.cz ].
Vyjimky (Exceptions) v hernim prumyslu
Jdi na stránku Předchozí  1, 2, 3, 4, 5
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mar



Založen: 16. 06. 2012
Příspěvky: 536

PříspěvekZaslal: 26. červen 2013, 10:07:32    Předmět: Odpovědět s citátem

]semo[ napsal:
No jo, asi nám začne flame, co? Smile..můžem pak ještě pokračovat s tématem Windows versus Linux Smile.

Windows vs Linux je vděčné téma, ale počkám, až to nastartuje pcmaster Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1778

PříspěvekZaslal: 26. červen 2013, 10:38:50    Předmět: Odpovědět s citátem

Ja startujem uplne ine flamy, no dovol Very Happy Na toto sme uz stari Razz
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Krolli



Založen: 12. 05. 2013
Příspěvky: 13

PříspěvekZaslal: 26. červen 2013, 18:50:39    Předmět: Odpovědět s citátem

mar: Že sa to niekomu bude chcieť zistovať som nečakal. Smile Divné mi je, že sa to nepredáva cez registre (ak to správne čítam). Tak som si dal tú prácu aj ja.

Funkcie
kód:

?addVal@@YAHHH@Z PROC
; _x$ = ecx
; _y$ = eax
; 5    :     return x + y;
   add   eax, ecx

?addRef@@YAHABH0@Z PROC
; _x$ = eax
; _y$ = ecx
; 10   :     return x + y;
   mov   eax, DWORD PTR [eax]
   add   eax, DWORD PTR [ecx]


Volanie
kód:

   mov   ecx, edi                      ;x uz bolo v edi
   mov   DWORD PTR _y$[ebp], eax
   call   ?addVal@@YAHHH@Z

   lea   ecx, DWORD PTR _y$[ebp]
   lea   eax, DWORD PTR _x$[ebp]
   call   ?addRef@@YAHABH0@Z


Ako už povedal ktosi, je to hrozne blbý príklad. Smile

PS: Pre úplnosť, MSVC 2010 x86, Release konfigurácia, /Ox /Ot /Oi /GL /LTCG a zrusene inlinovanie (/Ob0).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 536

PříspěvekZaslal: 27. červen 2013, 10:15:21    Předmět: Odpovědět s citátem

Krolli napsal:
Divné mi je, že sa to nepredáva cez registre (ak to správne čítam).

To není divné, to je normální předávat přes zásobník (pokud nemáš volací konvenci __fastcall, která prý ale dělá problémy u Intelu).
Krolli tys ale podváděl Smile /GL a /LTCG neberu, zkus si to hodit do dynamické knihovny a nalinkovat Smile
Tak nebo tak i toto potvrzuje, že const reference na elementární datové typy je špatný nápad.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Krolli



Založen: 12. 05. 2013
Příspěvky: 13

PříspěvekZaslal: 27. červen 2013, 18:35:13    Předmět: Odpovědět s citátem

mar napsal:
To není divné, to je normální předávat přes zásobník (pokud nemáš volací konvenci __fastcall, která prý ale dělá problémy u Intelu).

Fakt? Ja som si vždy myslel, že v optimalizovanom programe sa do registrov dáva všetko, čo sa tam ešte vojde (a nejedná sa o prípady ako zdieľané knižnice).
mar napsal:
Krolli tys ale podváděl Smile /GL a /LTCG neberu, zkus si to hodit do dynamické knihovny a nalinkovat Smile

My sme mali pravidlá? Razz
mar napsal:
Tak nebo tak i toto potvrzuje, že const reference na elementární datové typy je špatný nápad.

Jj, s tým súhlasím. Aj keby tam nebol overhead, tak je to pisanie navyše. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1481
Bydliště: Telč

PříspěvekZaslal: 28. červen 2013, 09:31:47    Předmět: Odpovědět s citátem

Tohle si při psaní C++ představuju. Ale jak tyhle věci fungujou třeba v .NETu? Mám na mysli low-level optimalizace kódu obecně. Máte někdo ponětí? Je to asi mojí neznalostí, ale když píšu v C#, netroufám si dělat žádné optimalizace (jen algoritmický), protože tam stejně sedí veliká žába na prameni :-).
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 536

PříspěvekZaslal: 28. červen 2013, 10:42:18    Předmět: Odpovědět s citátem

Tak řekl bych, že C# na tom bude podobně jako Java, takže JIT, za běhu překládá bytecode do strojáku pro kusy kódu (celé funkce?). Víc nevím, nikdy jsem v C# nic nepsal. Ale vsadím se, že pro ty, co vidí trochu dovnitř, by i low level optimalizace neměly být problém. Co jsem koukal tak CIL bytecode je zase jenom stack based, takže registry nepoužívá vůbec (ale výsledný kód ve strojáku určitě ano).
EDIT: zajímalo by mě, jak to řeší třeba v Unity na iOSu - tam se JIT dělat nedá, takže by to celé přeložili AOT? Což by jít mohlo, protože AFAIK to mají postavené na Monu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 870

PříspěvekZaslal: 28. červen 2013, 14:52:17    Předmět: Odpovědět s citátem

C# je na tom imho lépe než Java.. tak můžeš přepnout do "unsafe" kódu a začít psát normálně s pointerama do paměti. Nicméně na bytecode jsem nekoukal.
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Krolli



Založen: 12. 05. 2013
Příspěvky: 13

PříspěvekZaslal: 28. červen 2013, 22:24:28    Předmět: Odpovědět s citátem

Podla toho čo mi hovorili kolegovia v práci (ktorý so C# robia celkom dlho a majú nejaké tie pokusy o optimalizáciu za sebou) sa v C# nič neoptimalizuje. Asi najlepšie čo sa tam dá je vyhýbať sa alokáciam, virtuálnym volaniam, robiť algoritmické optimalizácie a predávať štruktúry ako ref. Na nejake inlinovanie často spúštaného kódu a krátkych metód alebo tail call optimalizáciu by som asi nestavial. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5
Strana 5 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna