Font
[thread]835[/thread]

Variablen im Speicher behalten



<< >> 7 entries, 1 page
Mates
 2006-10-30 23:06
#8942 #8942
User since
2006-08-15
21 articles
BenutzerIn
[default_avatar]
Gibt es eine Möglichkeit, Variablen, Hashes,... vllt. auch Subroutinen(?) im Speicher zu behalten? Hab mehrere, die bei jedem Scriptaufruf benötigt werden und ggf einige Mb gross sein können.
Wär das über einen Daimon oder so möglich?

/edit: Meine damit, das diese noch im Speicher bleiben, wenn das Script fertig abgearbeitet wurde.\n\n

<!--EDIT|Mates|1162242653-->
lichtkind
 2006-10-31 00:44
#8943 #8943
User since
2004-03-22
5697 articles
ModeratorIn + EditorIn
[Homepage]
user image
meinst du normale scripte oder mod_perl?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
topeg
 2006-10-31 07:00
#8944 #8944
User since
2006-07-10
2611 articles
BenutzerIn

user image
Wenn es sich um eine Normales script unter Linux handelt würde ich dafür eine Ramdisk anlegen in die du die großen Datensätze mit "DATA::Dumper" in eine Datei in der Ramdisk schreibst und dann wiedereinließt und mit "eval" einbindest (ist ungefähr 100-1000 mal schneller als das lesen von einer echten Festplatte). Du kannst auch das ganze script percompled (prelcc -b) mit in die Ramdisk packken, bei großen Programmen bringt das etwas, da das generieren des Bitecodes wegfällt.

Ein weitere Möglichkeit wäre ein "Masterprogramm" welches als Deamon gestartet wird und das immer wieder gestartete Script über Shared Memory, FiFo, etc. mit den Daten versorgt.
Du könntest dabei auch "FUSE" (filesystem in userspace) verwenden um ein virtuelles Dateisystem mit den Daten zu erzeugen. (recht pracktisch wenn es sich um große dynamisch generierte Datensätze handelt.)
Mates
 2006-11-01 10:34
#8945 #8945
User since
2006-08-15
21 articles
BenutzerIn
[default_avatar]
Weiss nicht ob wir vom gleichen reden.. Am besten mach ich maln Beispiel:
Ich habe eine DB. Eigentlich mehrere - egal. Sie baut auf Hashstränge auf. Die DB jedesmal komplett zu laden dauert ewig. Die würde ich gern im Speicher behalten und drauf zugreifen können, als hätte ich sie normal gerade geladen. Wenn das Möglich ist, wäre die nächste Frage, ob man auch ganze Routinen so behandeln kann. Hab z.B. mehrere DLL Dateien, in denen viele Routinen drin stecken.
Mit einem Ramdisk hab ich mal ausprobiert. Damals aber keinen grossen Unterschied gemerkt. Kanns abe nochmal probieren, vllt gehts jetzt besser?
Das mit dem Masterprogramm tönt gut! Werd mich da mal einwenig einlesen.

Im Übrigen: mod_perl... Kann man das auch auf gemieteten Webspace benutzen? Also, wo ich keine Rechte habe, am System rumzuspielen.
styx-cc
 2006-11-01 15:50
#8946 #8946
User since
2006-05-20
533 articles
BenutzerIn

user image
[quote=Mates,01.Nov..2006, 09:34]Im Übrigen: mod_perl... Kann man das auch auf gemieteten Webspace benutzen? Also, wo ich keine Rechte habe, am System rumzuspielen.[/quote]
Da muesstest du mal denjenigen fragen (Support), der den Server, auf dem die Seiten liegen, betreut :)

MfG
Pörl.
bloonix
 2006-11-01 19:13
#8947 #8947
User since
2005-12-17
1615 articles
HausmeisterIn
[Homepage]
user image
Was natürlich auch möglich ist, das das Programm nach vollendeter
Arbeit nicht beendet wird, sondern einfach auf ein Wakeup wartet.
Das Programm wird an eine Pipe gebunden. Der Austausch von
Datenstrukturen zu anderen Programmen könnte mit

CPAN:Storable

realisiert werden. Das sollte nicht schwer sein. Ich setze das Modul
selbst ein, um Datenstrukturen in Client-Server Umgebungen
auszutauschen.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
docsnyder
 2006-11-23 17:27
#8948 #8948
User since
2005-09-08
300 articles
BenutzerIn
[Homepage] [default_avatar]
@Mates

Überlege Dir mal, ob Du Deine DB nicht mit Tie::DBI manipulieren willst, anstatt ewig viele Tabellen im Hauptspeicher zu halten. Mit Tie::DBI bindest Du hashes an Tabellen Deinen DB und jede Operation, die Du auf den Hash anwendest, führt Perl simultan in der DB durch.

Gruß, Doc
<< >> 7 entries, 1 page



View all threads created 2006-10-30 23:06.