Wie erzeuge ich ein performantes 2Dim-Array von Primitiven (double, int) ?

  • RE: Noch eine Konzeptionsfrage!

    Deine Frage mit den Arrays von Arrays kann man so nicht beantworten. Oder doch, teilweise.

    1.
    Wenn die verschiedenen Messreihen unabhängig voneinander sind, würde ich eine dokumenten-basierte Applikation nehmen. Dann werden die verschiedenen Messreihen gleich von Cocoa verwaltet.

    2.
    Ein Array von Arrays ist sicherlich falsch, weil nicht sauber in Entitäten modelliert. Du solltest dann eine Klasse Messreihe haben, die die Messpunkte in einem Array als Eigenschaft messpunkte enthält.

    Die Messreihen fasst du dann wieder in einer Klasse Versuch (oder was auch immer der Oberbegriff für verschiedene Messreihen ist) zusammen. Das Array mit den Messreihen heißt dann eben als Eigenschaft messreihen.

    (Ich hoffe jedoch, dass du englische Begriffe verwendest.)
    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"?
  • Original von gritsch
    weil das mit den structs auch schneller programmiert ist als der elegante weg ;)

    Unter Berücksichtigung der von dir genannten Probleme (Alignment, Endianess) wage ich das zu bezweifeln. Willste mal machen …
    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"?
  • Original von Amin Negm-Awad
    Original von gritsch
    weil das mit den structs auch schneller programmiert ist als der elegante weg ;)

    Unter Berücksichtigung der von dir genannten Probleme (Alignment, Endianess) wage ich das zu bezweifeln. Willste mal machen …


    alignment sind paar buchstaben am struct dran hängen und endianess ist doch auch easy. Das muss man ja auch bei jeder anderen implementierung verwenden (außer logisch wenn die daten als xml oder sonstwas abgespeichert werden).

    aber wie gesagt - ich will mich jetzt nicht für den lösungsvorschlag rechtfertigen müssen weil ich wollte ihm nur den weg aufzeigen (weil er eben nach einem performanten gefragt hat).
  • Jungs...

    Das ist doch immer auch eine Kosten/Nutzen Frage.

    Wenn man für eine ultraperformante Lösung die eleganten, weniger performanten Lösungen in den Müll kippt, dann hat man in aller Regel eine sehr low levelige Lösung am Bein. Die Entwicklung eleganter Lösungen geht meist schneller von statten. Man spart also Zeit. Zeit ist Geld und von dem gesparten Geld kann man sich dann einen Mac Pro mit 8 Kernen holen, bei dem Performanz keine Rolle mehr spielt. Dann hat man einen Mac Pro, eine elegante Lösung und mehr Freizeit. :)

    gritsch ich mag dich trotzdem. :)
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Original von Objcler
    Jungs...

    Das ist doch immer auch eine Kosten/Nutzen Frage.

    Wenn man für eine ultraperformante Lösung die eleganten, weniger performanten Lösungen in den Müll kippt, dann hat man in aller Regel eine sehr low levelige Lösung am Bein. Die Entwicklung eleganter Lösungen geht meist schneller von statten. Man spart also Zeit. Zeit ist Geld und von dem gesparten Geld kann man sich dann einen Mac Pro mit 8 Kernen holen, bei dem Performanz keine Rolle mehr spielt. Dann hat man einen Mac Pro, eine elegante Lösung und mehr Freizeit. :)

    gritsch ich mag dich trotzdem. :)


    danke dass du mich trotzdem magst - aber ich wette, dass ich massig schneller bin das low-lewel zu implementieren als auf die elegante art und weise.
    außerdem kann man doch nicht jedem kunden einen top-rechner kaufen ;)
  • Original von Amin Negm-Awad
    Bei soviel gegenseitiger Liebe müssen wir aufpassen, dass wir hier nicht demnächst ein Stopp-Schild haben:


    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//
  • Original von gritsch
    Original von Amin Negm-Awad
    Bei soviel gegenseitiger Liebe müssen wir aufpassen, dass wir hier nicht demnächst ein Stopp-Schild haben:


    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//


    trackbuster.com
    Die Objective-Cloud ist fertig wenn sie fertig ist. Beta heißt Beta.

    Objective-C und Cocoa Band 2: Fortgeschrittene
    Cocoa/Objective-C Seminare von [co coa:ding].
  • Original von Objcler
    Original von gritsch
    Original von Amin Negm-Awad
    Bei soviel gegenseitiger Liebe müssen wir aufpassen, dass wir hier nicht demnächst ein Stopp-Schild haben:


    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//


    trackbuster.com


    was nützt einem sowas wenn es keine internet-provider mehr gibt?
  • Original von gritsch
    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//

    berlusconi wird eher das Internet kaufen und dann nur noch seine Inhalte publizieren.
    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"?
  • Original von Amin Negm-Awad
    Original von gritsch
    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//

    berlusconi wird eher das Internet kaufen und dann nur noch seine Inhalte publizieren.


    ne - er könnte es nie kontrollieren also würd ers einfach "ausschalten" und schon wärn die leute wieder auf seine zeitungen, seine fernsehsender und seine andere medien angewießen... *kopfschüttel*
  • Original von gritsch
    Original von Amin Negm-Awad
    Original von gritsch
    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//

    berlusconi wird eher das Internet kaufen und dann nur noch seine Inhalte publizieren.


    ne - er könnte es nie kontrollieren also würd ers einfach "ausschalten" und schon wärn die leute wieder auf seine zeitungen, seine fernsehsender und seine andere medien angewießen... *kopfschüttel*

    Wie dem auch sei, in jedem Falle müsste es bei jedem Beitrag, aber auch wirklich jedem Betrag, im Hintergrund eine Phalanx von Blondinen stehen, die einen weißen Badeanzug und einen weißen Frack tragen.

    Nur das ist wirklich Berlusconi-TV!
    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"?
  • Original von Amin Negm-Awad
    Original von gritsch
    Original von Amin Negm-Awad
    Original von gritsch
    müsst ihr mir bescheid sagen - weil ich werd sowas nicht sehen (zumindest so lange bis sich berlusconi einbildet das internet zu sperren - könnt ihm ja einfallen... :-//

    berlusconi wird eher das Internet kaufen und dann nur noch seine Inhalte publizieren.


    ne - er könnte es nie kontrollieren also würd ers einfach "ausschalten" und schon wärn die leute wieder auf seine zeitungen, seine fernsehsender und seine andere medien angewießen... *kopfschüttel*

    Wie dem auch sei, in jedem Falle müsste es bei jedem Beitrag, aber auch wirklich jedem Betrag, im Hintergrund eine Phalanx von Blondinen stehen, die einen weißen Badeanzug und einen weißen Frack tragen.

    Nur das ist wirklich Berlusconi-TV!


    und keine älter als 21 ;)
  • Berlusconi

    Was regt Ihr euch so über den Berlusconi auf? In China ist das ganze um ein paar Ecken schärfer und der Ahmadineschad der sieht das mit der Informationsfreiheit sowieso ganz anders. Aber man muss gar nicht mal soweit gehen. Schaut euch doch mal an welche Gesetze der gute alte Dr. Schäuble in der letzten Legislaturperiode auf den Weg gebracht hat...... Wo wir da im Moment hinsteuern gefällt mir ganz und gar nicht. (Und das ohne Silvios zutun.)

    Aber nach dieser Ausschweifung muss ich euch wieder mit meinem Problem belästigen. Ich kriege es einfach nicht auf die Reihe. Das ganze in Objective-C zu einer gescheiten und funktionierenden Datenstruktur zu basteln. Nun habe ich gestern das folgende entdeckt:

    memo.tv/nsarray_vs_c_array_per…akeobjectsperformselector

    und der hat da solche Sachen wie:

    Quellcode

    1. -(IBAction) doCArray:(id)sender {
    2. NSLog(@"doCArray: %@", sender);
    3. uint64_t start = mach_absolute_time();
    4. for(int i=0; i<numberOfItems; i++) {
    5. cArray[i].doSomething();
    6. }
    7. [self displayResult:mach_absolute_time() - start];
    8. }

    stehen, was prinzipiell eigentlich Objective-C Code zu sein scheint. Aber ich weis, das das bei mir nicht compiliert, denn er würde schon über die Delaration des ints in der for-Schleife meckern. Das ist wie ich annehme Objective-C++ oder? Kann mir einer sagen wie ich das machen kann? reicht es einfach nur alle .m Dateien in .mm umzubennen?
    Es wird nichts so heiß gegessen wie es gekocht wird.
  • RE: Berlusconi



    Natürlich. Aber wenn einem Eleganz wichtiger ist, nimmt man sowas doch gerne in Kauf.
    Wobei ich denke, viel wird durch den ObjC-Methonden-Aufruf gefressen, der Rest ist dann sicherlich alignment/caching.
    Das NSMutableData was jemand vorgeschlagen hatte sollte wohl nicht so schlimm in dem Vergleich abschneiden, aber da hast Du dann ja auch so gut wie keinen Unterschied mehr zu reinen C-Arrays.

    Und ja, ".mm" damit er C++ Eigenheiten in Deinem Obj-C code erkennt und frisst.
    C++
  • RE: Berlusconi

    Original von zermelo


    Natürlich. Aber wenn einem Eleganz wichtiger ist, nimmt man sowas doch gerne in Kauf.
    Wobei ich denke, viel wird durch den ObjC-Methonden-Aufruf gefressen, der Rest ist dann sicherlich alignment/caching.
    Das NSMutableData was jemand vorgeschlagen hatte sollte wohl nicht so schlimm in dem Vergleich abschneiden, aber da hast Du dann ja auch so gut wie keinen Unterschied mehr zu reinen C-Arrays.

    Und ja, ".mm" damit er C++ Eigenheiten in Deinem Obj-C code erkennt und frisst.


    das c-array ist aber nicht dynamisch. wenn man schon C++ verwendet dann kann man doch gleich STL verwenden und dort dann eine list oder vector oder sonstwas.
  • RE: Berlusconi

    Original von gritsch
    das c-array ist aber nicht dynamisch. wenn man schon C++ verwendet dann kann man doch gleich STL verwenden und dort dann eine list oder vector oder sonstwas.

    Das ist ja erst einmal egal: Wenn es sich nach dem Anlegen in seiner Grösse nicht mehr ändert, spricht nichts gegen ein klassisches C-Array (std::vector ist ja auch nicht viel mehr).

    std::list und auch andere Datenstrukturen haben Eigenschaften die manchmal erwünscht sind, aber auch nur dann sollte man darauf zurückgreifen. Beispielsweise ist die worst-case Zugriffszeit mit (n) von einer std::list etwas unangenehm für die meissten Anwendungen.
    C++
  • RE: Berlusconi

    Original von zermelo
    Original von gritsch
    das c-array ist aber nicht dynamisch. wenn man schon C++ verwendet dann kann man doch gleich STL verwenden und dort dann eine list oder vector oder sonstwas.

    Das ist ja erst einmal egal: Wenn es sich nach dem Anlegen in seiner Grösse nicht mehr ändert, spricht nichts gegen ein klassisches C-Array (std::vector ist ja auch nicht viel mehr).

    std::list und auch andere Datenstrukturen haben Eigenschaften die manchmal erwünscht sind, aber auch nur dann sollte man darauf zurückgreifen. Beispielsweise ist die worst-case Zugriffszeit mit (n) von einer std::list etwas unangenehm für die meissten Anwendungen.


    bei einem vector kann ich einfacher elemente anhängen als bei einem klassischen c-array