Created
March 3, 2009 20:24
-
-
Save flavorjones/73503 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/ruby | |
# | |
# memory leak? | |
# | |
require 'nokogiri' | |
1000.times do | |
doc = Nokogiri::XML("<root><item>1</item></root>") | |
doc.at('item').remove | |
putc "." | |
end | |
puts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# valgrind output WITHOUT the Node#remove call | |
==30011== | |
==30011== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) | |
==30011== malloc/free: in use at exit: 937,398 bytes in 15,263 blocks. | |
==30011== malloc/free: 47,333 allocs, 32,070 frees, 14,197,941 bytes allocated. | |
==30011== For counts of detected errors, rerun with: -v | |
==30011== searching for pointers to 15,263 not-freed blocks. | |
==30011== checked 1,344,580 bytes. | |
==30011== | |
==30011== LEAK SUMMARY: | |
==30011== definitely lost: 0 bytes in 0 blocks. | |
==30011== possibly lost: 12 bytes in 1 blocks. | |
==30011== still reachable: 937,386 bytes in 15,262 blocks. | |
==30011== suppressed: 0 bytes in 0 blocks. | |
==30011== Rerun with --leak-check=full to see details of leaked memory. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# valgrind output WITH the Node#remove call | |
==29997== | |
==29997== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) | |
==29997== malloc/free: in use at exit: 1,092,853 bytes in 19,096 blocks. | |
==29997== malloc/free: 147,428 allocs, 128,332 frees, 29,814,993 bytes allocated. | |
==29997== For counts of detected errors, rerun with: -v | |
==29997== searching for pointers to 19,096 not-freed blocks. | |
==29997== checked 1,432,704 bytes. | |
==29997== | |
==29997== LEAK SUMMARY: | |
==29997== definitely lost: 67,800 bytes in 1,130 blocks. | |
==29997== possibly lost: 12 bytes in 1 blocks. | |
==29997== still reachable: 1,025,041 bytes in 17,965 blocks. | |
==29997== suppressed: 0 bytes in 0 blocks. | |
==29997== Rerun with --leak-check=full to see details of leaked memory. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment