2009-04-21 8 views
4

babylon이라는 Ruby XMPP 프레임 워크를 만들었습니다. 그런 다음 몇 가지 응용 프로그램을 만들었고 아주 원활하게 실행하더라도 컴퓨터 메모리를 조금씩 먹고있는 것으로 보입니다. Ruby 스크립트에서 메모리 누수를 추적하십시오.

나는 누출을 의심, 그래서 첫째, 나는 내 코드에서 어떤 점에서이 추가 :

의심으로
puts `ps -o rss= -p #{Process.pid}`.to_i 

는, 출력이 천천히, 그러나 확실하게 ... 계속 증가.

explained here과 같이 Dike에서 누출을 추적하려고했습니다.

유감스럽게도, Dike는 누설을 감지하지 못했습니다. 꽤 긴 시간 동안 실행 된 후에도 여전히 동일한 객체를 반환합니다.

그렇다면 프레임 워크가 누출되고 일부 RAM을 최대량까지 가져 와서 릴리스하지 않는 것을 어떻게 확인할 수 있습니까?

그런 다음 실제로 누출을 추적하여 해결할 수 있습니까?

도움 주셔서 감사합니다.

답변

1

Ruby Memory Tracking API에 대한 좋은 소식을 들었지만 무료는 아닙니다.

ruby ​​메모리 누수를 찾는 유용한 블로그 게시물 using valgrind도 있습니다.

Ruby on Rails에 대한 다른 솔루션이 있지만 레일을 전혀 사용하지 않는 것처럼 보입니다.

+1

Valgrind가 나를위한 해결책 이었지만 ... Linux를 설치해야했습니다. –

+3

@Julein Genestoux, 가격이 1 대당 2 가지 솔루션이 있습니다. –

관련 문제