答案 0 :(得分:8)
需要注意的一件非常重要的事情是,您永远不会使用方法调用的结果。这意味着您应该将:return_result => false
传递给ldap.search
:
ldap.search(:base => base_dn, :filter => filter, :return_result => false ) do |entry|
从文档:“当:return_result => false,#search将只返回一个布尔值,以指示操作是否成功。这可以提高非常大的结果集的性能,因为库可以丢弃每个在块处理后从内存中输入。“
换句话说,如果你不使用这个标志,所有条目都将存储在内存中,即使你不需要它们!所以,请使用此选项。