使用Open()时Ruby写入磁盘的原因和位置

时间:2013-06-08 16:03:18

标签: ruby file-io memory-leaks

我有一个PHP脚本,它在我的localhost上提供一个字符串,如下所示:

  

{ “MX”: “704”, “我的”: “261”, “顶”: “ - 1000像素”, “左”: “ - 1157px”, “宽度”: “4582”, “高度”: “3522”, “articleHeader”: “假”, “wwidth”: “1366”, “wheight”: “665”, “时间”:1370692442}

我正在使用 open-uri的 net-http 来阅读带有ruby的网址。像这样,例如:

r = Net::HTTP.get( URI.parse( 'http://localhost/_inc/server.php') )

data = open('http://localhost/_inc/server.php')

我注意到(使用'watch df')我的磁盘使用情况(根文件系统)随着每个周期的增加而增加了url下该字符串的大小。在中止脚本时,空间没有被清除回初始状态(差异远大于写入/ tmp的任何内容)我不需要将该字符串保留在内存中,我希望它被丢弃

我假设 open / read 创建了一个新缓冲区(?),但为什么要写入我的hdd?我在哪里可以找到这些文件以及如何实际丢弃它们(调用 GC.start 没有帮助)

strace of the process

1 个答案:

答案 0 :(得分:0)

Ruby不应该受到责备 - 这是写入访问和错误日​​志的apache。