Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3123[/thread]

Kann man mit Perl Daten im Speicher halten? (Seite 3)



<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
Taulmarill
 2004-07-22 15:03
#30864 #30864
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
copy on write halt, hast du ja oben weiter schon mal erwähnt...

übrigens würde mich mal interessieren, was denn da für eine last aufkommt bzw. wie die rechnerkonfiguration aussieht, wenn MySQL bei 50MB daten schon überlastet ist.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
esskar
 2004-07-22 15:15
#30865 #30865
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Taulmarill,22.07.2004, 13:03]wenn MySQL bei 50MB daten schon überlastet ist.[/quote]
naja...
wenn der die 50 MB in einem feld drin stehen hat, was soll denn mysql damit performant erledigen?
Taulmarill
 2004-07-22 15:21
#30866 #30866
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
[quote=esskar,22.07.2004, 13:15][quote=Taulmarill,22.07.2004, 13:03]wenn MySQL bei 50MB daten schon überlastet ist.[/quote]
naja...
wenn der die 50 MB in einem feld drin stehen hat, was soll denn mysql damit performant erledigen?[/quote]
wurde gesagt, dass die 50MB in einem feld sind? also entweder hab ich's überlesen oder verbanne deine aussage mal in's reich der spekulation.

man sollte die datenstruktur natürlich so gut wie möglich in der DB abbilden, damit man von den datenbankfunktionen profitieren kann.
btw. kann ich mich nur pq's empfehlung anschliessen. probier mal SQLite aus, das is bei "simplem" SQL meist wesendlich schneller als andere datenbanken.

@Gimbly: kannst du uns evtl. mal nen tip geben, wie deine daten so aussehen und wie du darauf zugreifen musst, dann könnten wir dir besser raten, was du am besten benutzen könntest.
(warum hat das eigendlich vorher noch niemand gefragt?)
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
esskar
 2004-07-22 15:40
#30867 #30867
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wenn er variable sagt, hört sich das für mich wie ein scalar an, oder?
Taulmarill
 2004-07-22 16:11
#30868 #30868
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
naja, das is nen bischen weit hergeholt.
das könnte imho auch ein array of hashes of arrays of .... sein.
und selbst wenn es ein einfacher scalar ist, gibt es mit sicherheit eine möglichkeit das ganze elegant zu strukturieren.
warten wir doch einfach auf Gimblys antwort bevor wir uns da weiter in mutmassungen ergehen :)
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
steffenw
 2004-07-23 13:33
#30869 #30869
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
22.07.2004, 07:19, war die Zeit, wo wir einen neuen Perler nicht gewinnen konnten. Sieht jedenfalls so aus.

Wenn er in PHP ziemlich gut drinsteckt, hat er natürlich mit Perl erst einmal eine neue Programmiersprache zu erlernen, das ist fakt. Da PHP seine Wurzeln in Perl hat, wird es sicher nicht sehr schwer sein. Daß er mit Perl natürlich viel flexibler als mit PHP ist, wird er erst später erkennen.

Ich denke, das geschilderte Problem ist so, daß er evtl. durch einen simplen Fehler daran verzweifeln könnte und dann Perl nicht gut findet. mod_perl ist vielleicht nicht gerade das, wo man mit dem Perl lernen anfängt. Wenn er in CGI gut drinsteckt, dann sollte er sich in Perl damit versuchen. Wie Ihr schon sagtet, ist der Ansatz, die Daten in einer datenbankähnlichen Struktur einzufrieren und dann daraus wieder zu lesen sicher auch ein praktikabler Ansatz. Wie auch schon gesagt, sind die simplen Datenbanken oder Pseudodatenbanken oft die schnelleren, weil sie weniger hochintelligenten Ballast beinhalten und einfach nur Files lesen und schreiben.

Ich empfehle daher auch die Seiten von Brigitte Jelinek, die einen guten Überblick im Vergleich zu PHP und Perl geben: http://phpwelt.horus.at/perl/
Das sollte man als Umsteiger von PHP gelesen haben.
\n\n

<!--EDIT|steffenw|1090575263-->
$SIG{USER} = sub {love 'Perl' or die};
Strat
 2004-07-23 16:53
#30870 #30870
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Gimbly,21.07.2004, 14:58]Und könnte ich den Variableninhalt auch verändern?[/quote]
Grundsaetzlich ja, nur haette sowas bei der Vorgehensweise ueber die startup.pl Nebenwirkungen...

diese datenstruktur wird (normalerweise) beim start von apache eingelesen und in den shared memory gelegt. Zusaetzlich werden noch mehrere Apache-Prozesse gestartet (zumindest bei Apache1.3), die alle auf diesen Shared Memory zugreifen koennen. Soweit - so gut...

wenn jetzt aber diese Datenstruktur veraendert wird, kopiert sie der prozess, der sie veraendert, in den speicherbereich seines prozesses, wodurch 1. die daten doppelt gespeichert sind und 2. unterschiedliche versionen im umlauf sind.

wenn man auf diese Weise Variablen "sharen" will, dann das nur readonly machen... sonst sollte man eins der dafuer moeglichen Module verwenden (z.B. IPC::Shareable oder wie das heisst... die Apache-Module sind da auch heisse kandidaten...)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2004-07-21 15:33.