Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Lastochkin                    2:5066/18.50   26 Aug 2000  22:13:24
 To : All
 Subject : скорость
 -------------------------------------------------------------------------------- 
 
 
 помогите пожалуйста советом:
 
 написал обработку log'а Squid, строчка имеет следующий вид, нужно вытащить
 подчеркнутое:
 
 192.168.254.164 usr39019 - [01/Aug/2000:06:27:19 +0400] "GET
 
 >               ^^^^^^^^
 
  http://www.brainbench.com/products/ HTTP/1.0" 407 1387 TCP_DENIED:NONE
 
 >       ^^^^^^^^^^^^^^^^^^                         ^^^^ ^^^^^^^^^^^^^^^
 
 как лучше всего сделать вытаскивание нужной информации? меня интересует скорость
 работы регулярных выражений (у кого-нибудь вообще есть документация по
 оптимизации и всему такому?)
 
 как можно максимально увеличить скорость?
 
 следует ли под Юниксом для больших файлов (мег 20, при учете что на серваке 32
 мега оперативки, еще эта прога жрет много памяти за счет хэшев и хэшев хэшев)
 делать чтение блоками? или предоставить это Юниксу?
 
 насколько выгодней использовать хэши по сравнению с массивами? насколько больше 
 памяти жрут и как быстр доступ к элементам?
 
 помогите пожалуйста написать потолковей регулярное выражение
 
 парень один эту прогу написал, но криво и мне сказал чтобы я ее максимально
 заоптимизировал, скорость еще не мерил (думаю должна быть хорошая, потому что
 активно юзал хэщи), но размером в строчках в два раза меньше его реализации, от 
 этого вполне может зависеть трудоустройство...
 
 sub processing {
   read2memory (); # читаем в память в @log (в боевых условиях 19 меговое файло)
 
   foreach (@log) {
     next unless ($login, $address, $size, $method) =
 
 >            $_ =~ /^\S*\s(\S+)[^"]*"([^"]+)"\s\d*\s(\d*)\s(.+)$/;
 
 #                        1.login    2.address     3.size 4.method
 
 >   $address =~ /\S*\s\S*:\/\/([^\/]+)/; #вытаскивает чистый адрес без
 
 # всяких GET http://, то есть адрес сервера, от :// до / вобщем
     $address = $1; #как-нибудь тут похитрее можно сделать?
 
     $datrcvd{$login} += $size; # увеличиваем счетчик скачанной информации
     $userinfo{$login}{$address}++; # пихаем в хэш адрес куда лазил и если уже # 
 там находится увеличиваем счетчик посещения на 1
   }
 }
   До скорого...
 
 --- GoldED+/W32 1.1.4.4
  * Origin: Пиво с утра не только вредно, но и полезно (2:5066/18.50)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 скорость   Andrey Lastochkin   26 Aug 2000 22:13:24 
 скорость   Serge Matveev   27 Aug 2000 03:09:38 
 Re: скорость   Michael Samanov   27 Aug 2000 10:32:59 
 скорость   Serge Matveev   28 Aug 2000 00:17:58 
 Re: скорость   Paul Kulchenko   28 Aug 2000 22:54:11 
 скоpость   Albert N. MICHEEV   29 Aug 2000 01:24:00 
Архивное /ru.perl/333939a80929.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional