Thread Speicherverbrauch für 2-dim. Array verringern (4 answers)
Opened by ingobulla at 2013-01-26 19:04

ingobulla
 2013-01-26 19:04
#165200 #165200
User since
2008-08-08
20 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe in meinem Programm mehrere größere 2-dim. Arrays. Das sieht dann so aus:

Code (perl): (dl )
1
2
3
4
5
6
@{$self->{'values'}} = map { [("") x $num_cols] } (1..$num_rows);
@{$self->{'bold'}} = map { [(0) x $num_cols] } (1..$num_rows);
@{$self->{'color'}} = map { [("") x $num_cols] } (1..$num_rows);
@{$self->{'bg_color'}} = map { [("") x $num_cols] } (1..$num_rows);
@{$self->{'bottom'}} = map { [("") x $num_cols] } (1..$num_rows);
@{$self->{'left'}} = map { [("") x $num_cols] } (1..$num_rows);


Das Problem ist nun, dass $num_cols ungefähr 100 ist und $num_rows ungefähr 60000, was zu einem immensen Speicherverbrauch führt.

Meine Frage wäre nun, ob es eine universelle Technik in Perl gibt, um den Speicherverbrauch zu verringern.

Soll heissen: Da Devel::Size zeigt, dass pro Integer ca. 33 Byte und pro leeren String ca. 57 Byte verbraucht werden, war meine Hoffnung, dass man hier nicht problemspezifisch überlegen muss, wie man mit weniger Speicher auskommt, sondern Perl irgendetwas allgemeines bietet.

View full thread Speicherverbrauch für 2-dim. Array verringern