Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Curses::UI: медленная работа 
:(
    Опции темы
n4n0bit
Дата 1.12.2009, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 19.6.2008

Репутация: нет
Всего: 1



Мой сценарий делает некую работу, в результате которой получается некий результат, который я хочу смотреть через элемент TextViewer модуля Curses::UI. Этих результатов может быть до 50 и более. Когда скажем в хеше есть 30 результатов который я хочу просмотреть, 1 по 15 просматривается без тормозов (PageUP/PageDown переключение, Ctrl+Q выход), но далее при переключении заметные тормоза. Ниже приведена тестовая модель кода:

Код

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

use Curses::UI;

# <VARS>
my $req_num = 50; # кол-во запросов
my %win; # окна -;)
my %txt; # текст -;)
my %tmp; # вспомогательный хеш
my $data = 'A' x 4096;
# </VARS>

$tmp{c} = 0;


my $cui = Curses::UI->new( -mouse_support => 0, -debug => 0, -clear_on_exit => 1 );
$win{0} = $cui->add(undef, "Window", -border => 1, -y => 1, -title => $win{0}, -width => 120, -height => 33, -centered => 1 );

foreach my $n(0..$req_num)
{
    $txt{$n} = $win{0}->add( undef, "TextViewer", -text => "$n$data", -border => 1, -title => "Loop # $n" );
}

$cui->set_binding(\&next_win_res, "339");
$cui->set_binding(\&prev_win_res, "338");
$cui->set_binding( sub {exit 0;}, "\cQ");

$win{0}->focus();
$cui->mainloop();

### eof ###

sub next_win_res()
{
    $tmp{c}++;
    $tmp{c} = 0 if $tmp{c} > $req_num-1; 
    $txt{$tmp{c}}->focus;
}

sub prev_win_res()
{
    $tmp{c}--;
    $tmp{c} = $req_num-1 if $tmp{c} < 0;
    $txt{$tmp{c}}->focus;
}


ps: можно ли избежать этих тормозов другой реализацией кода? или это хронически для этого модуля.
PM MAIL WWW Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: GUI | Следующая тема »


 




[ Время генерации скрипта: 0.0823 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.