Mailinglist Archive: opensuse-programming-de (211 mails)
| < Previous | Next > |
Re: C / 3 Dim. Array dynamisch allokieren
- From: Michael Matz <matz@xxxxxxx>
- Date: Wed, 5 Mar 2003 21:37:47 +0100 (CET)
- Message-id: <Pine.LNX.4.33.0303052134440.5124-100000@xxxxxxxxxxxxx>
Hi,
On Wed, 5 Mar 2003, Sebastian Huber wrote:
> Ist das nicht ein bischen viel Overhead fuer eine bequemere Syntax und
> geringfuegig schnellere Indexberechnung? Hier habe ich ja 'L*M*N*sizeof(T)'
> Speicher fuer die Daten plus 'L*M*sizeof(void*)' Speicher fuer die Zeiger.
Kommt eben drauf an. Wenn man ehh alle Elemente braucht, und die
Multiplikationen schneller als Speicherzugriffe sind (je nach
Zugriffspattern kommen die aus dem Cache), dann kann eine flache
Implementierung (also das 3D- auf ein 1D-Array gemappt) schneller sein.
Wenn man aber nur einige Elemente braucht, oder das Ding resizen koennen
will, dann ist die dynamische Variante eher geeignet.
Ciao,
Micha.
On Wed, 5 Mar 2003, Sebastian Huber wrote:
> Ist das nicht ein bischen viel Overhead fuer eine bequemere Syntax und
> geringfuegig schnellere Indexberechnung? Hier habe ich ja 'L*M*N*sizeof(T)'
> Speicher fuer die Daten plus 'L*M*sizeof(void*)' Speicher fuer die Zeiger.
Kommt eben drauf an. Wenn man ehh alle Elemente braucht, und die
Multiplikationen schneller als Speicherzugriffe sind (je nach
Zugriffspattern kommen die aus dem Cache), dann kann eine flache
Implementierung (also das 3D- auf ein 1D-Array gemappt) schneller sein.
Wenn man aber nur einige Elemente braucht, oder das Ding resizen koennen
will, dann ist die dynamische Variante eher geeignet.
Ciao,
Micha.
| < Previous | Next > |