Schnellste Methode ein Array zu durchlaufen?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Quellcode

    1. #import
    2. #import
    3. @interface BaseObject : NSObject {
    4. int idx;
    5. }
    6. - (void)doSomeCrazyStuff;
    7. @property (readwrite) int idx;
    8. @end
    9. @implementation BaseObject
    10. @synthesize idx;
    11. - (void)doSomeCrazyStuff {
    12. //do some crazy stuff here!
    13. NSLog(@"doSomeCrazyStuff: %@ - %i", self, idx);
    14. }
    15. @end
    16. #define MAX_OBJECTS 10
    17. int main(int argc, char *argv[])
    18. {
    19. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    20. BaseObject *objects = (BaseObject*)calloc(MAX_OBJECTS, sizeof(BaseObject));
    21. mach_timebase_info_data_t info;
    22. mach_timebase_info(&info);
    23. double machTimerMillisMult = (double)info.numer / ((double)info.denom * 1000000.0);
    24. int i;
    25. uint64_t startTime;
    26. startTime = mach_absolute_time();
    27. for (i = 0; i < MAX_OBJECTS; i++) {
    28. BaseObject *obj = [[[BaseObject alloc] init] autorelease];
    29. obj.idx = i;
    30. objects[i] = *obj;
    31. }
    32. NSLog(@"alloc %f", (mach_absolute_time() - startTime) * machTimerMillisMult);
    33. SEL sel = @selector(doSomeCrazyStuff);
    34. IMP imp = [objects methodForSelector:sel];
    35. startTime = mach_absolute_time();
    36. for (i = 0; i < MAX_OBJECTS; i++) {
    37. BaseObject *obj = &objects[i];
    38. //[obj doSomeCrazyStuff];
    39. (*imp)(obj , sel);
    40. }
    41. NSLog(@"method %f", (mach_absolute_time() - startTime) * machTimerMillisMult);
    42. //[objects release];
    43. NSLog(@"%@", objects);
    44. free(objects);
    45. objects = nil;
    46. NSLog(@"%@", objects);
    47. [pool release];
    48. return 0;
    49. }
    Alles anzeigen



    Hier hat sich jemand schon die Mühe gemacht. :)
    memo.tv/nsarray_vs_c_array_performance_comparison

    >>wirf in das array nur pointer rein und nicht die objekte an sich.
    Wie?
  • Michael schrieb:

    gritsch schrieb:

    welche werbung? (signatur ausgeblendet)

    Also ich sehe trotz ausgeblendeter Signatur sein Thema fett dargestellt und den Link am Ende seines Beitrages sehe ich auch.

    Michael

    Außerdem habe ich den Wortlaut schon mal irgendwo gelesen...

    wanghuanju schrieb:

    Wenn du es wirklich eilig hast, etwa in einer oft benutzten Funktion eines Spiels oder bei wissenschaftlichen Berechnungen, solltest du Objective-C-Kram eh einfach bleiben lassen und C-Arrays benutzen

    system schrieb:

    Wenn du es wirklich eilig hast, etwa in einer oft benutzten Funktion eines Spiels oder bei wissenschaftlichen Berechnungen, solltest du Objective-C-Kram eh einfach bleiben lassen und C-Arrays benutzen.

    Diese Gewürzschinkenbots werden auch immer raffinierter. :pinch:
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • macmoonshine schrieb:

    Lucas de Vil schrieb:

    Nee, Frühstücksfleisch ist kein Hack.

    Nicht in dem Sinn wie das Hackfleisch, dass Du beim Metzger bekommst, regional auch Mett oder Hackepeter genannt.

    Meine Mami war jahrzehntelang Fleischfachverkäuferin.
    Deshalb ist für mich alles, was sich Hack nennen darf, mindestens 99% zerkleinertes grob entsehntes Muskelfleisch mit maximal 1% Salz.
    'Hackepeter' und 'Tartar' sind gewürztes Hack und deshalb kein Hack. +lacht+
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Lucas de Vil schrieb:

    macmoonshine schrieb:

    Lucas de Vil schrieb:

    Nee, Frühstücksfleisch ist kein Hack.

    Nicht in dem Sinn wie das Hackfleisch, dass Du beim Metzger bekommst, regional auch Mett oder Hackepeter genannt.

    Meine Mami war jahrzehntelang Fleischfachverkäuferin.
    Deshalb ist für mich alles, was sich Hack nennen darf, mindestens 99% zerkleinertes grob entsehntes Muskelfleisch mit maximal 1% Salz.
    'Hackepeter' und 'Tartar' sind gewürztes Hack und deshalb kein Hack. +lacht+

    Wtf? Ich dachte ja, Du musst es Wissen, aber ich hab trotzdem bei Wiki nachgeschaut, zum Glück: de.wikipedia.org/wiki/Tatar
    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)
    C++
  • zerm schrieb:


    Wtf? Ich dachte ja, Du musst es Wissen, aber ich hab trotzdem bei Wiki nachgeschaut, zum Glück: de.wikipedia.org/wiki/Tatar
    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Woraus soll man sonst Bolognese machen? Tofu?

    Leber-Bolognese gibt es IIRC noch.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    zerm schrieb:


    Wtf? Ich dachte ja, Du musst es Wissen, aber ich hab trotzdem bei Wiki nachgeschaut, zum Glück: de.wikipedia.org/wiki/Tatar
    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Woraus soll man sonst Bolognese machen? Tofu?

    Leber-Bolognese gibt es IIRC noch.

    Na das normale Hack, ich bevorzuge Halb-und-halb. Tatar kostet etwa zweimal soviel.
    C++
  • zerm schrieb:

    Amin Negm-Awad schrieb:

    zerm schrieb:


    Wtf? Ich dachte ja, Du musst es Wissen, aber ich hab trotzdem bei Wiki nachgeschaut, zum Glück: de.wikipedia.org/wiki/Tatar
    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Woraus soll man sonst Bolognese machen? Tofu?

    Leber-Bolognese gibt es IIRC noch.

    Na das normale Hack, ich bevorzuge Halb-und-halb. Tatar kostet etwa zweimal soviel.

    Stimmt, Halb-Halb nehme ich auch, wenn es nichts besonderes ist. Das würde ich mir anders als Tartar auch nicht aufs Brot schmieren.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • zerm schrieb:

    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Arrr, verdammt. Ja, natürlich. le tartare. Det war nur kleiner geraspelt als 'normales' Wiegefleisch (Hack).

    Wikipedia lügt, zumindest beim Abschnitt spezielle Hackfleischarten.
    Wobei... Roh futtert man das Zeug ja nie. Wohl ne Doppelbedeutung.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • Lucas de Vil schrieb:

    zerm schrieb:

    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Arrr, verdammt. Ja, natürlich. le tartare. Det war nur kleiner geraspelt als 'normales' Wiegefleisch (Hack).

    Wikipedia lügt, zumindest beim Abschnitt spezielle Hackfleischarten.
    Wobei... Roh futtert man das Zeug ja nie. Wohl ne Doppelbedeutung.

    Natürlich futtert man Tatar roh. Lecker Röggelchen damit und obendrauf Zwiebeln.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Lucas de Vil schrieb:

    zerm schrieb:

    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Arrr, verdammt. Ja, natürlich. le tartare. Det war nur kleiner geraspelt als 'normales' Wiegefleisch (Hack).

    Wikipedia lügt, zumindest beim Abschnitt spezielle Hackfleischarten.
    Wobei... Roh futtert man das Zeug ja nie. Wohl ne Doppelbedeutung.

    Schau an. Der andere Wikipedia-Artikel ist ja korrekt. Beheb das doch mal ;)

    Und viele Menschen essen gerne rohes Hackfleisch.
    Ich mag das nur so ein-zwei-mal im Jahr, dann schön mit Zwiebeln und ein bisschen Salz. Pfeffer weniger. Und bloß kein Kümmel!
    C++
  • zerm schrieb:

    Lucas de Vil schrieb:

    zerm schrieb:

    Tatar ist ungewürzt. Ist einfach nur edles Rinderhack. Als solches kaufe ich es auch (wenn ich Geld über hab für sowas - dann aber dekadent genug, eine Bolognese draus zu machen)

    Arrr, verdammt. Ja, natürlich. le tartare. Det war nur kleiner geraspelt als 'normales' Wiegefleisch (Hack).

    Wikipedia lügt, zumindest beim Abschnitt spezielle Hackfleischarten.
    Wobei... Roh futtert man das Zeug ja nie. Wohl ne Doppelbedeutung.

    Schau an. Der andere Wikipedia-Artikel ist ja korrekt. Beheb das doch mal ;)

    Und viele Menschen essen gerne rohes Hackfleisch.
    Ich mag das nur so ein-zwei-mal im Jahr, dann schön mit Zwiebeln und ein bisschen Salz. Pfeffer weniger. Und bloß kein Kümmel!

    Von den Tatarbrötchen in unserer Schulkneipe habe ich gelebt. Morgens, 8.15 Uhr, wenn der Unterricht losging: Ab in die Kneipe: "Jussi, määste mer en Tatar un en Kölsch"
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?