revelación completa - que se inspiró en Is x += a quicker than x = x + a?¿Es + = más rápido que - =?
Aparte de eso, decidí probar +=
vs -=
. Pruebas simples revelan que son más o menos lo mismo. Luego he intentado algo similar a:
std::vector<int> x;
for (int i = 0 ; i < 10000 ; i++)
x.push_back(rand()%10);
y llame +=
y -=
proporcional a un número dado:
long long sum = 0;
for (each number in the array)
if (x[j] < k)
sum += x[j];
else
sum -= x[j];
así, si k
es, digamos, pequeña, -=
obtendría llama con más frecuencia (duuuh) Intenté con k = 2
que daría una mayor proporción de -=
llamado, y con k = 5
, que debería dar aproximadamente el mismo número de -=
y +=
.
La frase clave: llamar a -=
es aproximadamente dos veces más rápido que llamar al +=
. ¿Por qué sería más eficiente en este caso?
Creo que hay cosas mejores para "inspirar". – Mysticial
Probablemente solo una leve ventaja para A + B, considerando que A - B es solo A + (-B) – nullpotent
Dos palabras: predicción de bifurcación. Sugerencia: Pruebe k = 8 –