如何加快我用python编写的couchdb视图

时间:2010-11-02 16:30:10

标签: python couchdb

我正在用python编写我的couchdb视图。我认为做

之类的事情并不是...... pythonic
def fun(doc):
    import re
    # do something with re
    yield 1, 1

因为re是针对导入的每个文档。把import re放在开头会给我一个错误(字符串应该编译成一个合适的函数),一个

 del re
视图末端的

使函数内的re不可用。

那么如何避免一次又一次地导入re?

3 个答案:

答案 0 :(得分:1)

View server处理许多具有相同上下文的文档。所以import re只在处理第一个文档时才导入模块。所有其他map次调用只会查找sys.modules

答案 1 :(得分:1)

我最近遇到了同样的麻烦并且解决了这个问题:

import re

def foo(doc, re_xx=re.compile("required-pattern")):
    # use re_xx
    yield 1, 1

del re

答案 2 :(得分:0)

如果你正在使用re模块,可能会有一些事情可以用你的正则表达式完成,以及如何编译它们会比删除模块查找速度更快(python中的字典非常快)。我不明白你为什么要在函数结束时del re,这可能会减慢速度。

您是否有办法计时,以便在调整视图时可以衡量改进/回归?确定一些时间安排将使调整更容易。