Witam ile teoretycznie zajmuje wykonanie instrukcji warunkowej if w której porównują się np dwie wartości. Pytam bo tak sobie myślałem że jak ktoś zostawia szereg ifów bez elsa to wszystkie się sprawdzają i zajmuje to czas operacyjny procesora.
-
Wszystko zależy od konkretnej architektury oraz procesora - inaczej wyglądają instrukcje warunkowe w ARMach, a inaczej na x86; inaczej wykonują się w Intelach, inaczej w AMD (tematy:
branch prediction
,cache miss
,speculative execution
). -
Naprawianie problemów z wydajnością kodu zawsze rozpoczynaj od profilowania - nigdy nie baw się w zgadywanie
tutaj są dwa ify bezpośrednio po sobie, więc pewnie zajmuje to 99% czasu
, bo możesz stracić dużo czasu na nikomu niepotrzebną analizę fragmentu, który wcale nie jest problemem. CPU oraz system widzą szeroki obraz (czas stracony w aplikacji oraz kernelu), Ty niekoniecznie, i tak roztrwonisz czas na zastanawianie się nad drabinką ifów, podczas gdy w innym wątku w pętli działa sobie ogromny regex orzący po pamięci, procesorze i dysku.
Bardzo ciekawe jest to co mówisz. Dzięki za info