Cât de mare este costul de memorie atunci când trece un tip ca parametru la o metodă?

voturi
0

De exemplu, eu încerc să fac ceva de genul:

- (BOOL)compare:(NSDecimal)leftOperand greaterThan:(NSDecimal)rightOperand {
    BOOL returnValue = NO;
    NSComparisonResult result = NSDecimalCompare(&leftOperand, &rightOperand);
    if (result == NSOrderedDescending) { // if the left operand is greater than the right operand
        returnValue = YES;
    }
    return returnValue;
}

Dar mă întreb cât de mare este costul de memorie atunci când se utilizează acest înveliș. Funcția NSDecimalCompare ia parametrii de referință (este faptul că cuvântul?). Dar metoda mea nu. Mi se pare că lucrurile-prin referință greu de utilizat. Are metoda mea de a crea copii ale acestor valori? Este o pierdere de memorie?

Întrebat 27/08/2009 la 00:41
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
2

Vei face copii ale dumneavoastră NSDecimals, dar sunt doar 36-byte ( în cazul în care matematica mea este corect) structs, așa că s - ar putea să nu fie deasupra capului semnificativ.

Dar chiar este o problemă? De exemplu, ai de asteptare aceasta metoda de multe ori pe secundă? Exemplu de cod întâi pentru a vedea unde sunt blocaje înainte de a încerca să optimizeze lucruri de genul asta. După cum spune Knuth, „optimizare prematură este rădăcina tuturor relelor“.

Publicat 27/08/2009 la 00:53
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more