草庐IT

ruby-on-rails - Ruby net/ldap 模块中的内存泄漏

作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

键删除后 ruby​​ 哈希内存泄漏

你好,我无法成功如何在散列中删除key后释放内存。当我从哈希中删除键时,内存不会释放,也不会在手动调用GC.start后释放。当从Hash中删除键并且这些对象在某处泄漏时,这是预期的行为还是GC不释放内存?如何在Ruby中删除Hash中的键并在内存中取消分配它?例子:irb(main):001:0>`ps-orss=-p#{Process.pid}`.to_i=>4748irb(main):002:0>a={}=>{}irb(main):003:0>1000000.times{|i|a[i]="test#{i}"}=>1000000irb(main):004:0>`ps-orss=-p

ruby - rails 3.0.7 内存泄漏

我的两个不同的Rails应用程序的内存有一些奇怪的问题。这两个应用程序都使用rails3.0.7。每个Controller请求分配20-30-50MB的内存。在生产模式下,这个数量减少到5-10。但这是同样的事情。这是两个应用程序使用的gem列表:gem'pg'gem'haml'gem'sass'gem'devise'gem'simple_form'gem'state_machine'gem"globalize3","0.1.0.beta"gem"easy_globalize3_accessors"gem'paperclip'gem'andand'关闭所有这些gem不会给我任何结果。我

ruby-on-rails - 升级到 OSX Lion 后 ruby​​ 进程内存泄漏

几周前我升级到Lion,它完全被RubyonRails环境搞砸了。我已经安装了RVM,不同的ruby​​版本,但似乎找不到解决方案……我认为这是我升级到Lion所能做的最糟糕的决定之一。它只会给我带来问题。无论如何,我已经意识到渲染我的应用程序页面(它在已部署的服务器上以及在其他机器上本地运行良好)会增加20-30mb的ruby​​进程内存,这有点疯狂。所以你可以想象一下,过了一会儿,我的ruby​​进程使用了​​2gb的内存,我的电脑就不能用了。我见过很多人在升级到Lion时遇到问题,但我一直无法为我的案例找到解决方案。有人遇到过同样的问题吗?我有什么想法可以尝试解决这个问题吗?谢谢

ruby - File.realpath() 是否泄漏内存?

我在使用File.realpath()时遇到问题,留下的字符串似乎没有被垃圾收集。在我看来,这像是内存泄漏,但我无法想象这样的事情对于核心库方法来说真的是真的。考虑以下代码:defstring_test(string)putsstringendGC.startreport=MemoryProfiler.reportdos='./foo.txt'.freezestring_test(s)s=nilGC.startendreport.pretty_print这会产生(以及其他冗长的输出):Totalallocated:0bytes(0objects)Totalretained:0bytes

ruby - 从 Rails 3.0 升级到 Rails 3.2(Ruby 1.9.3 + Passenger)后出现巨大的内存泄漏/膨胀

上周我们将一个在Rails3.0.1上运行的小项目升级到了Rails3.2.2。升级后不久,我们发现偶尔,一天2-3次,我们会看到一个巨大的PhusionPassenger进程(1-5GB)。我们正在运行PhusionPassenger3.0.11和Ruby1.9.3-p0。我们已经尝试了不同的Ruby版本(1.9.2-p290和1.9.3-p125)但没有成功。之后,我们尝试使用Oink来跟踪我们的内存使用情况.不幸的是,Oink没有显示内存膨胀的原因——大型进程似乎不再写入日志文件。当我们降级回Rails3.0.1时,问题就消失了。有没有人有类似的问题?我们确实检查了我们的代码是否

ruby - 如何处理 RMagick 在 Ruby 中的内存泄漏?

我正在使用Merb开发Web应用程序,并且正在寻找一些安全稳定的图像处理库。我曾经在php中使用Imagick,然后转移到ruby​​并开始使用RMagick。但有一个问题。长时间运行的脚本导致内存泄漏。有几个解决方案存在,但我不知道哪个是最稳定的。那么,你怎么看?现在,我的应用程序使用我在PHP中编写的用于处理图像的内部API。它与其他应用程序一起在单独的服务器上运行,因此这不是一个大问题。但我认为这不是一个好的架构。无论如何,我会考虑任何实用的技巧。 最佳答案 我也遇到过这个问题-解决方案是强制垃圾回收。当您将图像变量重新分配给

ruby-on-rails - 我怎样才能找到 Heroku 上的内存泄漏?

我有一个Rails3.2.8应用程序在HerokuCedar上运行,使用Ruby1.9.3。该应用程序启动时运行良好,但在连续使用一天左右后,我开始在我的日志中看到R14错误。一旦出现内存错误,它们就永远不会消失,即使应用闲置几个小时也是如此。垃圾收集器不应该过一段时间就清理不用的对象,减少内存负载吗?这似乎在Heroku上没有发生。通常,在运行一些包含几千行数据的报告后,内存使用量开始逐渐增加,尽管结果是分页的。如何找到内存泄漏?像bleak_house这样的插件已经过时或不能在Heroku环境中正常运行。我可以调整GC设置以使其更具攻击性吗? 最佳答案

ruby-on-rails - 找到Ruby on Rails内存泄漏的任何好方法吗?

我的项目正在发生内存泄漏,部署后,它的内存在10分钟内从500MB增加到1800MB。我试过很多工具,但没有一个是好用的。我使用了jprofiler,它显示了调用堆栈,内存分配,哪个类/方法被调用过多…以图表的形式,非常容易阅读和分析。我真的很喜欢这个。这样地:像这样:我已经找到这个工具:https://github.com/tenderlove/heap-analyzer,但我还没有使用。那么,有什么好的方法/工具可以找到ruby/rails内存泄漏吗?我试过mini_profiler,但没有达到预期的效果。谢谢! 最佳答案 您还

ruby - 查找 Ruby 中内存泄漏的原因

我在我的Rails代码中发现了内存泄漏-也就是说,我发现了代码泄漏的什么,但没有找到泄漏的原因。我已将其简化为不需要Rails的测试用例:require'csspool'require'ruby-mass'defreportputs'Memory'+`psax-opid,rss|grep-E"^[[:space:]]*#{$$}"`.strip.split.map(&:to_i)[1].to_s+'KB'Mass.printendreport#noteIdonotstorethereturnvaluehereCSSPool::CSS::Document.parse(File.new('