Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Koliko puta je brzi 3D engine napravljen u asembleru od onog napravljenog u C++-u?

  • 20 odgovora
  • 20.375 pregleda

Najnovija ↓

Re: Koliko puta je brzi 3D engine napravljen u asembleru od onog napravljenog u C++-u? 22.08.2011. u 04:35 · pre 184 meseca #21
Uglavnom većina stvari koje ste spomenuli ovde su skroz nebitne za brzinu... Naime moderni procesori su toliko brzi da većinu vremena provode čekajući da se deo memorije iz RAM-a prebaci u cache ili iz višeg cache-a u niži. Tako da je ako se zaboravi na cache moguće napisati kod u asembleru koji ima manje instruckcija od C++ koda i ima mnogo lošije performanse. Problem sa C++ je da uglavnom programeri koji pišu u C++ nemaju pojma šta je cache i kako uopšte memorija iz RAM-a stiže do CPU-a. pa samim tim i skloniji su da kreiraju sporiji kod. Recimo neko u asembler nikada neće koristiti shared_ptr, iako nepotrebno, sasvim normalno videti u C++ kodu. To su 2-3 cache miss-a po korišćenju. 1 za count++, 2 za raw pointer, i 3 ako je u toku pristupa toj memoriji shared_ptr izbačen iz cache-a kada se radi count--. Uglavnom u sadašnje vreme osim par izuzetaka niko ne piše kod za igre u asembleru. I kada se piše piše se za specijalne procesore gde to ima smisla, u manjem obimu za CPU.
Potpis
https://github.com/bkaradzic/bgfx
Sviđa mi se1
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme