Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: GUI > Perl Tk. Вывод большого файла в Scrolled Text, Сжи


Автор: deber 21.11.2011, 13:58
Добрый день!

Необходимо сделать вывод разных лог-файлов, длина которых достигает 2 гигов.
На машине, которая это будет отображать максимум 1 гиг оперативки.

Все бы ничего, но программа просто вываливается, при заполнении всей памяти. Видимо уже ядро linux его прибивает, освобождая память для своих нужд.

Каким образом можно это осуществить, не влезая в железо? 

Вот часть кода:
Код

$vl = $mw->Toplevel(-title => "test");

my $textframe = $vl->Frame(-borderwidth => 0);
$textframe->pack(qw/-side bottom -anchor n -fill both -expand yes/);

$text = $textframe->Scrolled(qw/ROText -exportselection 1 -scrollbars se -wrap none -background white/);
$text->pack(qw/-side top -anchor n expand yes -fill both/);

my $buffer = "";
my $logfile = "test.log";

open LOG, "<", "$logfile";
while (read(LOG, $buffer, 100)) {
        $text->insert('end', $buffer);
        $text->update();
}
close LOG;


Автор: deber 24.11.2011, 15:03
Нет, стираю свое предположение.
Думал дампится информация, а он все-равно рухнул из-за нехватки памяти.

Придется делать постраничный вывод   smile 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)