Różny zapis dodawania a wydajność

Odpowiedz Nowy wątek
2014-12-17 04:43
Kiwa
0

Hey, chciałem się zapytać czy jest jakaś różnica w wydajności pomiędzy zapisami:

  1. ++zmienna;
  2. zmienna + 1;
  3. zmienna += 1;
    Chodzi o zwrócenie takiego samego wyniku więc w takim kontekście każdy z tych zapisów znaczy to samo (pomijam kwestię zmiany wartości samej zmiennej).

Z góry dzięki za rozwianie wątpliwości.

Pozostało 580 znaków

2014-12-17 06:21
2

Jeśli przez 2 miałeś na myśli: zmienna = zmienna + 1 to jeśli nie masz wyłączonych optymalizacji i korzystasz z normalnego kompilatora to powinno działac tak samo szybko


░█░█░█░█░█░█░█░█░█░█░█░
... o ile kompilator w ogóle potrafi optymalizować. - _13th_Dragon 2014-12-17 11:09
dlatego napisałem "normalny kompilator" - krwq 2014-12-17 18:30

Pozostało 580 znaków

2014-12-17 06:33
Kiwa
0

Bardziej chodziło mi o coś w stylu:
tablica[++zmienna] vs tablica[zmienna + i] vs tablica[zmienna+=1]
Za każdym razem muszę tą zmienną "jakoś" zwiększać więc teraz pytanie czy jakieś rozwiązanie jest bardziej optymalne od innego?
Tutaj też jest ważna uwaga: nie zawsze zwiększam o 1 dlatego pierwsze rozwiązanie jest naprzemienne z trzecim. Czyli czasami robię ++zmienna a czasami zmienna += 2;
Do tego w zasadzie nigdy nie wykorzystuję zmiennej dwa razy z tą samą wartością.

edytowany 1x, ostatnio: furious programming, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-17 11:12
0
  1. Środkowy wariant nie zmienia wartości zmienna.
  2. ++zmienna przeważnie zamienia się na jedną instrukcje assemblera.
  3. Ale nadal to co napisał @krwq w tym przypadku aktualne, o ile twój kompilator posiada umiejętność optymalizacji.

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-17 11:42
kq
0

Poeksperymentuj sobie: http://goo.gl/NdA4tF


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0