Pixeldaten Auf Dem Stack
 
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Veränderung (letzte Änderung) (keine anderen Diffs, Normalansicht)

Hinzugefügt: 10a11,14

Mal abgesehen davon, dass dieser Vorschlag nicht durchdiskutiert ist und vielleicht noch neue Aspekte auftauchen könnten, halte ich das für keinen erfolgversprechenden Ansatz. Wenn die Pixeldaten mit z. B. 1000 x 1000 Pixel und 24 Bit = 3 MByte in einem Stück allokiert und nach der Bearbeitung deallokiert werden, dann fällt Art bzw. Ort der Allokierung (Stack, Malloc) überhaupt nicht ins Gewicht. Der Zeitaufwand für die Bildbearbeitung bzw. Bild-IO liegt mindestens 1000x höher. -- HelmutLeitner




Im Rahmen einer Diskussion auf CeeStackKonzept wurde die Frage aufgeworfen, welche Aufgaben nicht per "Allokation auf dem Stack" gelöst werden können? Als Beispiel wurden Pixeldaten eines digitalisierten Bildes genannt. Besonders bei der interaktiven Bildverarbeitung kommt es dabei oft zu irregulären (De-)Allokationsvorgängen.


HelmutSchellong schlug vor für die Batch-orientierte Verarbeitung rekursiver Aufrufe verschiedener Bearbeitungsfunktionen zu implementieren bei denen diverse Pointer auf Daten am Stack durchgereicht werden. Diese Methode ist allerdings nur bedingt geeignet für zB Graphikbearbeitungsprogramme wo mehrere Bilder gleichzeitig geöffnet sein können und die Reihenfolge ihrer Bearbeitung und Deallokation nicht fixiert ist.

Eine etwas strukturiertere Methode würde einen großen Block Memory am Stack allozieren und darauf einen eigenen Allokator für die Bilddaten implementieren. Dabei würde man aber wahrscheinlich die Performancegewinne die durch Stack-statt-Heap-Allokation realisieren könnte durch den Allokator wieder gefressen. Dafür würde man sich in der allozierbaren Speichermenge darauf einschränken, was man am Anfang alloziert hat.


Mal abgesehen davon, dass dieser Vorschlag nicht durchdiskutiert ist und vielleicht noch neue Aspekte auftauchen könnten, halte ich das für keinen erfolgversprechenden Ansatz. Wenn die Pixeldaten mit z. B. 1000 x 1000 Pixel und 24 Bit = 3 MByte in einem Stück allokiert und nach der Bearbeitung deallokiert werden, dann fällt Art bzw. Ort der Allokierung (Stack, Malloc) überhaupt nicht ins Gewicht. Der Zeitaufwand für die Bildbearbeitung bzw. Bild-IO liegt mindestens 1000x höher. -- HelmutLeitner


KategorieProgrammierung KategorieSchellong
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 10. September 2003 11:02 (diff))
Suchbegriff: gesucht wird
im Titel
im Text