class BigList

26/06/2008 - 09:11 von Iris-und-Thomas-Lehmann | Report spam
Hallo,

ich bin gerade dabei mir eine Klasse BigList zu schreiben,
die zu einem Zeitpunkt eine begrenzte Zahl von Objekten
im Speicher hàlt über Zugriffe wie "append" wird entschieden
ob der "paging" Mechanismus in Kraft trifft.

Soweit ok.
Aufwendiger erscheint mit allerdings die Bereitstellung des
Index Zugriffs. Ich müsste mir für alle ausgelagerten Seiten
in der aktuellen Instanz merken welche Index Bereiche für
welche "Seite" zustàndig ware, damit ich weis welche "Seite"
als Parameter in swapPage" reingehen muss...

Muss ich tatsàchlich diesen Weg gehen oder kann man
das ganze einfacher gestalten?

Hintergrund: Ich versuche mich an Aufgaben in http://projecteuler.net/.
Manche diese Aufgaben erfordern Primzahlen für die
ich ein Sieb anlegen muß wofür der Speicher nicht
mehr reicht

Grüße und Danke
Thomas
 

Lesen sie die antworten

#1 Peter Otten
26/06/2008 - 10:44 | Warnen spam
wrote:

ich bin gerade dabei mir eine Klasse BigList zu schreiben,
die zu einem Zeitpunkt eine begrenzte Zahl von Objekten
im Speicher hàlt über Zugriffe wie "append" wird entschieden
ob der "paging" Mechanismus in Kraft trifft.

Soweit ok.
Aufwendiger erscheint mit allerdings die Bereitstellung des
Index Zugriffs. Ich müsste mir für alle ausgelagerten Seiten
in der aktuellen Instanz merken welche Index Bereiche für
welche "Seite" zustàndig ware, damit ich weis welche "Seite"
als Parameter in swapPage" reingehen muss...



Du legst einfach für alle Index-Bereiche der Liste Auslagerungsseiten an.
Dann kannst Du die gewünschte Seite mit index//page_size berechnen.

Muss ich tatsàchlich diesen Weg gehen oder kann man
das ganze einfacher gestalten?



Paging ist normalerweise ein Mechanismus, den Dir das Betriebssystem in Form
von Virtual Memory für lau liefert. Alles was Du in Python machst wird sehr
viel ineffizienter.

Hintergrund: Ich versuche mich an Aufgaben in http://projecteuler.net/.
Manche diese Aufgaben erfordern Primzahlen für die
ich ein Sieb anlegen muß wofür der Speicher nicht
mehr reicht



Benötigst Du signifikant mehr als ein Bit pro Zahl? Dann überleg noch mal
wie Du den Speicherbedarf reduzieren kannst, statt weiter auf "brute force"
zu setzen. Oder Du versuchst einen komplett neuen Ansatz...

Peter

Ähnliche fragen