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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как оптимизировать 
:(
    Опции темы
frenkys
Дата 4.3.2006, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код


%vorot=(
'252,2,4'=>'14#4,15#2,15#3,15#4,15#5,15#6,16#5,16#6,16#7,16#8,16#9,17#7,17#8,17#9,17#10,18#8,18#9,18#10,19#7,19#8,19#9,20#6,20#7,20#8,21#5,21#6,21#7,22#4,22#5,22#6,23#3,23#4,23#5,24#2,24#3,24#4,25#1,25#2,25#3'
);



if ($v_) {

my ($r,$g,$b)=split(/:/,$v);
my $es = $tite->colorAllocate($r,$g,$b);

foreach $bs(keys %vorot) 
{
@kord=split(/,/,$vorot{$bs});
foreach $ff(@kord) {
my ($x,$y)=split(/#/,$ff);
$tite->setPixel($x,$y,$es);
}
}
}



проц пентиум 2.4 Ghz 512 MB
timethis 1000: 57 wallclock secs (51.91 usr + 0.11 sys = 52.02 CPU) @ 19.22/s (n=1000)

Может можно эту часть кода оптимизировать чтоб она быстрее работала?
--------------------
 niva[frenky]
PM MAIL WWW   Вверх
sharq
Дата 4.3.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



frenkys, попробуй писать через ссылки и не использовать лишние переменные.
Используй возможности perl на все 100!

smile


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
frenkys
Дата 4.3.2006, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



а можно понаглядней? smile
--------------------
 niva[frenky]
PM MAIL WWW   Вверх
sharq
Дата 5.3.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



frenkys, что-то типа этого

Код

use strict;

...

my $vorot = {
    '252,2,4' => '14#4,15#2,15#3,15#4,15#5,15#6,16#5,16#6,16#7,16#8,16#9,17#7,17#8,17#9,17#10,18#8,18#9,18#10,19#7,19#8,19#9,20#6,20#7,20#8,21#5,21#6,21#7,22#4,22#5,22#6,23#3,23#4,23#5,24#2,24#3,24#4,25#1,25#2,25#3'
};

if ($v_) {
    my $es = $tite->colorAllocate(split /:/, $v);
    foreach (values %$vorot) {
        foreach my $ff (split /,/, $_) { # лучше ограничить сплит тремя первыми значениями
            my ($x, $y) = split /#/, $ff; # без этого тоже можно, сразу подставить в функцию, только нужно ограничить сплит двумя первыми значениями
            $tite->setPixel($x, $y, $es);
        }
    }
}


Вот упрощенный вариант:
Код

use strict;
...
my $vorot = {
    '252,2,4' => '14#4,15#2,15#3,15#4,15#5,15#6,16#5,16#6,16#7,16#8,16#9,17#7,17#8,17#9,17#10,18#8,18#9,18#10,19#7,19#8,19#9,20#6,20#7,20#8,21#5,21#6,21#7,22#4,22#5,22#6,23#3,23#4,23#5,24#2,24#3,24#4,25#1,25#2,25#3'
};

if ($v_) {
    my $es = $tite->colorAllocate(split /:/, $v, 3);
    foreach my $value (values %$vorot) {
        $tite->setPixel(split(/#/, $_, 2), $es) foreach split /,/, $value;
    }
}


smile

Это сообщение отредактировал(а) sharq - 5.3.2006, 18:14


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
Kannabismus
Дата 6.3.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тим Тоуди



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

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



Это GD тормозит, поэтому оптимизировать код бесполезно.
Видимо вы работаете с очень большим изображением.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




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


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

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