|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/333939a80929.html, оценка из 5, голосов 10
|