Привет,
не знаю, куда поместить этот пост, придется сюда.
Есть код на питоне:
name = self.re_repl_camel.sub(lambda x:"%s-%s"%(x.group(1),x.group(2)), name)
используется он при дампе объектов в xml и заменяет идентификаторы в вырблюжьей нотации objectOne на
object-One, потом приводится к нижнему регистру.
Получилось так, что преобразование объектов в xml — одно из слабых мест фреймворка, в общем случае это на порядок медленнее последующего xsl-преобразования.
Конкретно, приведенный код при количестве вызовов 40100 стоит нам около 0.2 секунды (компиляция регекспов вынесена),
т.е. на тестовом примере имеем где-то 0.9 с этим вызовом, 0.7 без него.
Интересно, нельзя ли как-то эт место переписать, что бы было стало дешевле?
Нужно заменить пары вида aB на a-B или a-b