Jak velká je paměť náklady při průjezdu typ jako parametr pro metodu?

hlasů
0

Například se snažím udělat něco takového:

- (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;
}

Ale zajímalo by mě, jak velký je náklady na paměti při použití tohoto obalu. Funkce NSDecimalCompare se parametry podle odkazu (je to slovo?). Ale moje metoda není. Zjistil jsem, že by-reference věci špatně použitelný. Má moje metoda vytvářet kopie těchto hodnot? Je to ztráta paměti?

Položena 27/08/2009 v 00:41
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Budete dělat kopie vašeho NSDecimals, ale jsou to jen 36-byte (pokud moje matematika je správné) structs, takže to nemusí být významné režie.

Ale je to opravdu problém? Například jste volání této metody mnohokrát za sekundu? Ukázkový kód nejprve zjistit, kde jsou úzká místa jsou před snaží optimalizovat takové věci. Jak říká Knuth, „předčasné optimalizace je kořenem všeho zla“.

Odpovězeno 27/08/2009 v 00:53
zdroj uživatelem

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