Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

nrao wwwxxx, xxxxxdup, procmail change subject header, wwwXxx not20, Wwwxxx.doks sas, linux raid resync after reboot, bind-address mysql multiple, sanibleone xxxx, ftp://192.168.100.100/, www.xxxcon

Links

XODOX
Impressum

#1: Speicherproblem

Posted on 2008-04-03 17:00:10 by Peter Ludikovsky

Servus!

Umgebung: Perl 5.8.8, DBI 1.5.9, MySQL 5

Eine unserer Apps zeigt ein sehr seltsames Verhalten. Per DBI werden aus
einer MySQL DB (ca 700 MB) Daten ausgelesen und gemangled (nachdem auf
die DB nicht mehr zugegriffen wird).

Das Problem tritt bei eben diesem mangling auf, genauer bei 3 ineinander
verschachtelten maps. Bei der normalen ausführung werden diese auch nach
15 Minuten nicht beendet. Wenn man allerdings in die äusserste map ein
print auf STDERR einfügt wird das Script innerhalb von 5 min. fertig.

Ist so etwas schon mal jemandem passiert? Wenn ja, gibt es einen
Workaround? Würde es Sinn machen, die maps durch foreach zu ersetzen?

MfG
/peter

Report this message

#2: Re: Speicherproblem

Posted on 2008-04-03 18:07:15 by Bjoern Hoehrmann

* Peter Ludikovsky wrote in de.comp.lang.perl.misc:
>Das Problem tritt bei eben diesem mangling auf, genauer bei 3 ineinander
>verschachtelten maps. Bei der normalen ausführung werden diese auch nach
>15 Minuten nicht beendet. Wenn man allerdings in die äusserste map ein
>print auf STDERR einfügt wird das Script innerhalb von 5 min. fertig.

Mit demselben Ergebnis? An sich klingt das so als würde das "print" den
Rückgabewert verändern, und zwar so, dass das ganze schneller beendet
wird. Du müsstest dann das print so einfügen, dass der Rückgabewert
gleichbleibt. Ggf. hilft es eines der Profiler Module zu benutzen um zu
sehen, was genau passiert.
--
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Report this message

#3: Re: Speicherproblem

Posted on 2008-04-03 18:35:57 by Peter Ludikovsky

Bjoern Hoehrmann wrote:
> * Peter Ludikovsky wrote in de.comp.lang.perl.misc:
>> Das Problem tritt bei eben diesem mangling auf, genauer bei 3 ineinander
>> verschachtelten maps. Bei der normalen ausführung werden diese auch nach
>> 15 Minuten nicht beendet. Wenn man allerdings in die äusserste map ein
>> print auf STDERR einfügt wird das Script innerhalb von 5 min. fertig.
>
> Mit demselben Ergebnis? An sich klingt das so als würde das "print" den
> Rückgabewert verändern, und zwar so, dass das ganze schneller beendet
> wird. Du müsstest dann das print so einfügen, dass der Rückgabewert
> gleichbleibt. Ggf. hilft es eines der Profiler Module zu benutzen um zu
> sehen, was genau passiert.

Ja, gleiches Ergebnis. Statt dem print hilft interessanter weise auch
ein einfaches defined $_

Report this message

#4: Re: Speicherproblem

Posted on 2008-04-03 18:38:57 by Frank Seitz

Peter Ludikovsky wrote:
>
> Umgebung: Perl 5.8.8, DBI 1.5.9, MySQL 5
>
> Eine unserer Apps zeigt ein sehr seltsames Verhalten. Per DBI werden aus
> einer MySQL DB (ca 700 MB) Daten ausgelesen und gemangled (nachdem auf
> die DB nicht mehr zugegriffen wird).

Hoffentlich habt ihr sehr viel Hauptspeicher. Perl verbrutzelt
vermutlich ein Vielfaches der 700 MB.

> Das Problem tritt bei eben diesem mangling auf, genauer bei 3 ineinander
> verschachtelten maps. Bei der normalen ausführung werden diese auch nach
> 15 Minuten nicht beendet. Wenn man allerdings in die äusserste map ein
> print auf STDERR einfügt wird das Script innerhalb von 5 min. fertig.

Klingt obskur. Kommt das gleiche Ergebnis raus?
Was darf man sich unter diesen drei verschachtelten map konkret
vorstellen? Bin noch nie auf die Idee gekommen, map zu schachteln.

> Ist so etwas schon mal jemandem passiert? Wenn ja, gibt es einen
> Workaround? Würde es Sinn machen, die maps durch foreach zu ersetzen?

Foreach ist vermutlich das bessere Konstrukt, aber ich sehe
da keinen Zusammenhang zu dem Verhalten, das du beschreibst.

GrüÃče
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Report this message