LINUX.ORG.RU

Почему в Питоне такие медленные регеспы?


0

0

http://www.linux.org.ru/jump-message.jsp?msgid=2335615&cid=2337801

http://www.linux.org.ru/jump-message.jsp?msgid=2337620&cid=2337857

PHP/Python:
preg_replace: time=6.78807497025
sub       : time=17.400000

preg_match: time=0.662420034409
re.match: time=5.920000

?

Сорцы - по ссылкам. Что я не так с Питоном делал? :)
★★★★★

недавно я обнаружил проседание gnu grep на несколько порядков при поиске простейшей подстроки. Выяснилось -- что причина в локали. Попробуй сменить локаль..

dilmah ★★★★★
()
Ответ на: комментарий от gFun

#!/usr/bin/env python

import re, time

str = "$a$b$c$d$a$b$c$d$a$b$c$d$a$b$c$d$a$b$c$d$a$b$c$d$a$b$c$d";

def r1():
    regexp = re.compile(r'\$')
    for i in xrange(1000000):
        regexp.sub(':', str)

def r2():
    for i in xrange(1000000):
        re.sub(r'\$', ':', str)

start = False

def timing(str):
    global start

    if(start):
        print "%s: time=%f" % (str, time.clock() - start)

    start = time.clock()

timing("")

r1()
timing("compiled")

r2()
timing("don't compiled")



compiled: time=10.730000
don't compiled: time=15.420000

defmacro
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.