Neues in der Kategorie Linux

Memory::Usage von David O'Neill zeigt den aktuellen Speicherbedarf eines Programms aus der Sicht des Betriebssystems an. Da hierzu die Datei /proc/$pid/statm genutzt wird, funktioniert Memory::Usage derzeit nur auf Betriebssystemen, welche diese Datei zur Verfügung stellen, z.B. Linux.

Memory::Usage untergliedert die Speichernutzung wie folgt:

  • virtual memory size (vzs)
  • resident set size (rss)
  • shared memory size (shared)
  • text (aka code or exe) size (code)
  • data and stack size (data)

 

Beispiel

Im diesem Beispiel wird der Speicherverbrauch vor und nach dem Aufbau einer speicherhungrigen Datenstruktur mit record() gemessen. Anschließend wird ein Report auf den Standardfehlerkanal STDERR via dump() ausgegeben.

#!/usr/bin/perl
use strict;
use warnings;

use Memory::Usage;

my $mu = Memory::Usage->new();

my %hash = ();

# Record amount of memory used by current process
$mu->record('starting work');

# Use some memory
for ( 1 .. 10_000_000 ) {
	$hash{ $_ } = 1;
}

# Record amount in use afterwards
$mu->record('finished work');

# Spit out a report
$mu->dump();

exit();

Das Programm liefert folgende Ausgabe:

time    vsz (  diff)    rss (  diff) shared (  diff)   code (  diff)   data (  diff)
    0   5304 (  5304)   2072 (  2072)   1652 (  1652)   1244 (  1244)    692 (   692) starting work
   37  834004 ( 828700) 830784 ( 828712)   1676 (    24)   1244 (     0)  829392 ( 828700) finished work

Die Laufzeit wird in Sekunden angeben, alle Speicherangaben in Kilobytes. Memory::Usage rechnet intern pages in Kilobyte um (4 kb je page).

 

Siehe auch:

Die neue Modern Perl Ubuntu 10.10 Desktop Live DVD ist fertig und liegt zum Download als ISO-Image bereit.

U10-10-2-klein.png

Features

  • Perl 5.10.1 und mehr als 2.600 CPAN Module vorinstalliert
  • Modern Perl Module wie Catalyst, DBIx::Class und Moose bereits installiert
  • Zahlreiche Editoren wie Padre, Eclipse mit EPIC-Plugin, Vim, Emacs, Geany, jEdit
  • Zahlreiche Bibliotheken und Header-Dateien bereits installiert - vereinfacht die Installation weiterer CPAN-Module erheblich
  • Softwareversionierung cvs, svn, hg, git und bzr inkl. graphischer Tools bereits installiert
  • In Perl geschriebene Bildbearbeitungssoftware: Shutter
  • Weitere Software kann mit den Standardwerkzeugen apt-get, Synaptic oder dem Software-Center einfach installiert werden.

Modern Perl und Ubuntu einfach ausprobieren

Das ISO-Image (1,8 GB) kann einfach mit VirtualBox oder VMware gestartet werden.

U10-10-1-klein.png

Alternativ lässt sich das ISO-Image auch auf eine DVD brennen. Anschließend den Rechner von der DVD booten und das Ganze einfach ausprobieren. Da es sich um eine Live-DVD handelt, wird nichts auf dem Rechner installiert.

Editoren und Versionskontrolle für Perl-Entwickler (m/w)

U10-10-3-klein.png

Padre

Padre wird in der Version 0.70 ausgeliefert, die leider den ein oder anderen Bug hat und sofort abstürzt. Hier hilft nur ein manuelles Update auf Version 0.72 oder neuer.

Kephra

Wer manuell updated, kann bei dieser Gelegenheit auch Kephra, den etwas anderen Editor, installieren, der es nicht auf die DVD geschafft hat, da noch keine Ubuntu/Debian Packages vorliegen.

Shutter - Shutter - Feature-rich Screenshot Tool

U10-10-4-klein.png

Shutter, eine in Perl geschriebene Software für Screenshots, bietet umfangreiche Bearbeitungsmöglichkeiten.

Siehe auch:

Dank Gtk2::Notify von Florian Ragwitz ist sehr einfach Desktop-Notifications via D-Bus in eigene Programme einzubinden.

Log::Dispatch::Gtk2::Notify (ebenfalls von von Florian Ragwitz) vereinfacht die Ausgabe von Log-Meldungen als Desktop-Notifikation.

Gtk2::Notify

 

Desktop-Notify-01.png
#!/usr/bin/perl
use warnings;
use strict;

use Gtk2::Notify -init, "app_name";

my $summary = 'Gtk2::Notify';

my $message = 'Hallo Welt!';

my $icon = '/usr/share/app-install/icons/podbrowser.png';

my $attach_widget = undef;

my $notification = Gtk2::Notify->new($summary, $message, $icon, $attach_widget);

$notification->show;

Der Parameter summary erzeugt die Überschrift der Notification, message enthält die eigentliche Nachricht. Die Notification bleibt für 5 Sekunden auf dem Bildschirm stehen. Der optionale Parameter icon bindet ein Icon neben der Nachricht ein. Da die Notification einfach auf dem Desktop angezeigt werden soll und nicht an einem bestimmten geöffnetem Fenster, wird der Parameter attach_widget einfach auf undef gesetzt.

 

Log::Dispatch::Gtk2::Notify

Log::Dispatch::Gtk2::Notify wird als (weiteres) Ausgabeziel zu Log::Dispatch hinzugefügt. Je nach Level der Log-Nachricht wird automatisch ein passendes Icon in die Notification eingefügt.

Desktop-Notify-02.png
#!/usr/bin/perl
use strict;
use warnings;
use Log::Dispatch::Gtk2::Notify;

my $notify = Log::Dispatch::Gtk2::Notify->new(
        name      => 'notify',
        min_level => 'debug',
        app_name  => 'MyApp',
        title     => 'Important Message',
    );

$notify->log(level => 'alert', message => 'Hello, World!');

$notify->log(level => 'notice', message => 'Hello, World!');
Desktop-Notify-03.png

 

Siehe auch:

 

Über dieses Archiv

Diese Seite enthält aktuelle Einträge der Kategorie Linux.

Kryptographie ist die vorherige Kategorie.

LWP ist die nächste Kategorie.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Fachzeitschriften

Blog Roll

Powered by

Powered by Movable Type 4.38

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.