Wpis z mikrobloga

if (Creature* creature = thing->getCreature()) [...]


Creature* creature = thing->getCreature();

if (creature) [...]


Orientuje się może ktoś czy jest jakaś różnica wydajnościowa między tymi zapisami po stronie kompilatora?
#cpp #programowanie
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Crypton3: @ghostface: Prawdopodobnie dokładnie żadna, bo optymalizator robi z takim kodem i tak cuda wianki. Wynika z tego, że prawdopodobnie nie ma jednej odpowiedzi, bo to zależy co jest kontekstem tego kawałka kodu. Jedynym sposobem żeby się czegoś dowiedzieć, to nie tyle skompilować i podejrzeć assemblera (obecne procki assemblera też kompilują, interpretują i optymalizują w trakcie wykonania..), co po prostu pomierzyć czasy wykonania (ale koniecznie w danym kontekście).
  • Odpowiedz
@Crypton3: @tata_marcina: @nargil: jestem przekonany, ze w kazdym przyzwoitym kompilatorze bedzie dokladnie zadna - bedzie wygenerowane tylko icmp poprzedzone callem i skok warunkowy - a to wszystko w tym samym bloku.
Pewnie w jakichs specyficznych przypadkach wygenerowany kod moze sie roznic, ale w to bardzo watpie i jezeli juz, to bedzie to tylko kwestia szczescia - i nie wiadomo na czyja korzysc.
  • Odpowiedz