gpt4 book ai didi

ruby-on-rails - 如何查找并修复 Rails 和 Couchbase 内存泄漏

转载 作者:行者123 更新时间:2023-12-02 06:41:08 26 4
gpt4 key购买 nike

我有以下测试代码:

def loop_bucket_gets
bucket = Couchbase::Bucket.new({:node_list => ['xxx.xxx.xxx.xxx:8091', 'yyy.yyy.yyy.yyy:8091'],
:bucket => 'Foo',
:pool => 'default',
:expires_in => 1.day,
:default_format => :marshal,
:key_prefix => '_foo'
})

i = 0
loop do
begin
i += 1
bucket.get "ABC#{i}"
rescue ::Couchbase::Error::Base => e
nil
end
end
end

当我在 Rails 控制台中执行此操作时,内存泄漏。

我正在使用:

  • 沙发底座 1.3.10 gem
  • libcouchbase 2.4.3

我在 https://www.couchbase.com/issues/browse/RCBC-187 创建了一个问题

最佳答案

循环中没有终止条件,因此它将永远运行并导致您提到的内存问题。您应该在循环中添加相关的中断条件并测试它是否可以解决问题。

def loop_bucket_gets
bucket = Couchbase::Bucket.new({:node_list => ['xxx.xxx.xxx.xxx:8091', 'yyy.yyy.yyy.yyy:8091'],
:bucket => 'Foo',
:pool => 'default',
:expires_in => 1.day,
:default_format => :marshal,
:key_prefix => '_foo'
})

i = 0
loop do
begin
i += 1
bucket.get "ABC#{i}"
break if YOUR_TERMINATING_CONDITION
rescue ::Couchbase::Error::Base => e
nil
end
end
end

关于ruby-on-rails - 如何查找并修复 Rails 和 Couchbase 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26712241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com