Pat*_*ois 5 postgresql activerecord memory-leaks ruby-on-rails
当你使用时ActiveRecord::Base.connection.execute(sql_string),你应该调用clear结果以释放内存吗?
在这个播客的 19:09 ,扬声器(一个在Active Record上做了很多工作的Rails提交者)说如果我们使用ActiveRecord::Base.connection.execute,我们应该调用clear结果,或者我们应该使用这个方法ActiveRecord::Base.connection.execute_and_clear,这需要一个块.
(他对方法名称有点不清楚.MySQL适配器free的方法是和Postgres适配器的方法clear.他还提到release,但该方法不存在.)
我的理解是他说我们应该改变
result = ActiveRecord::Base.connection.execute(sql_string).to_a
process_result(result)
Run Code Online (Sandbox Code Playgroud)
至
ActiveRecord::Base.connection.execute_and_clear(sql_string, "SCHEMA", []) do |result|
process_result(result)
end
Run Code Online (Sandbox Code Playgroud)
要么
result = ActiveRecord::Base.connection.execute(sql_string)
process_result(result)
result.clear
Run Code Online (Sandbox Code Playgroud)
播客是我听到这个声明的唯一地方,我找不到任何其他相关信息.我正在使用的Rails应用程序在execute没有clear多个实例的情况下使用,我们不知道由它引起的任何问题.在某些情况下,未能通话clear更有可能导致记忆问题吗?
| 归档时间: |
|
| 查看次数: |
463 次 |
| 最近记录: |