Brownian motion

around the essentials…

 

“Но опыт есть!”

Я колись писав про видобування шматка лога FreeRadius (задача полягала у видобуванні тих фрагментів тексту між порожніми рядками, які містять рядки, що відповідають певному заданому регулярному виразу) — писав скрипт на awk та python і порівнював швидкодію.

Але з голови не йде LilyPond, тому закортіло спробувати те саме на scheme :O)

Ось перший млинець (справді перший, чессно,-):

;;
"""~d records (~d lines) processed
~d records matched
Pattern was: '~a'
";; vim: ts=2:

Результат непоганий — майже як awk :-)

Ось три результати для цілком певного файлу detail (123M), для цілком певного регулярного виразу:

Scheme:

$ time guile -s fradlog_extract.scm 'Station-Id = \"4494.....\"' detail-20090519 > part-scheme
183764 records (4563405 lines) processed
447 records matched
Pattern was: 'Station-Id = "4494....."'
 
real    0m27.653s
user    0m27.550s
sys     0m0.110s

awk:

$ time awk -f fradlog_extract.awk pattern='Station-Id = \"4494.....\"' detail-20090519 > part-awk
183764 records (4563405 lines) processed
447 records matched
Pattern was: 'Station-Id = "4494....."'
 
real    0m21.680s
user    0m21.490s
sys     0m0.090s

python:

$ time python fradlog_extract.py 'Station-Id = "4494....."' detail-20090519 > part-python
183764 records (4563405 lines) processed
447 records matched
Pattern was: 'Station-Id = "4494....."'
 
real    0m9.766s
user    0m9.670s
sys     0m0.060s

Як бачимо, дуже непогано ;О)

Майже як awk.

Справді — я не програміст :-) Якщо хтось скаже, «як насправді треба» — буду вдячний.

(No Ratings Yet)

Напишіть відгук

XHTML: Можете використовувати такі теґи: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Останні публікації

Most Rated

Highest Rated

Теґи

Архіви