Re: Core leak, detected, fix on the way I guess.
Daniel Diaz <[email protected]> Fri, 11 Mar 2016 15:37:32 +0100
| Newsgroups | gmane.comp.gnu.prolog.general |
|---|---|
| Message-ID | <[email protected]> |
Hi, When you consult a file an atom is created corresponding to the temporary file name (something like /tmp/gplc...). Since, there is no garbage collector for atoms this is never recovered. You can use : ?- statistics. Memory limit in use free trail stack 16383 Kb 0 Kb 16383 Kb cstr stack 16384 Kb 0 Kb 16384 Kb global stack 32767 Kb 2 Kb 32765 Kb local stack 16383 Kb 0 Kb 16383 Kb atom table 32768 atoms 1764 atoms 31004 atoms to see the number of atoms in use (it should increase at each consult I suppose). Daniel Le 11/03/2016 15:13, emacstheviking a écrit : Under Ubuntu 14.04, with a debug build of gprolog and valgrind I got this after loading an empty source file: ==8418== ==8418== HEAP SUMMARY: ==8418== in use at exit: 911,183 bytes in 1,994 blocks ==8418== total heap usage: 2,042 allocs, 48 frees, 920,804 bytes allocated ==8418== ==8418== 16 bytes in 1 blocks are definitely lost in loss record 7 of 1,994 ==8418== at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==8418== by 0x51C5839: strdup (strdup.c:42) ==8418== by 0x4A33DD: Pl_M_Tempnam (in /usr/local/gprolog-1.4.4/bin/gprolog) ==8418== by 0x4805ED: Pl_Temporary_File_3 (in /usr/local/gprolog-1.4.4/bin/gprolog) ==8418== by 0x47D575: ??? (in /usr/local/gprolog-1.4.4/bin/gprolog) ==8418== by 0x4A46B1: Call_Next (in /usr/local/gprolog-1.4.4/bin/gprolog) ==8418== by 0x4A52C2: Pl_Call_Prolog (in /usr/local/gprolog-1.4.4/bin/gprolog) ==8418== by 0x403477: main (in /usr/local/gprolog-1.4.4/bin/gprolog) ==8418== ==8418== LEAK SUMMARY: ==8418== definitely lost: 16 bytes in 1 blocks ==8418== indirectly lost: 0 bytes in 0 blocks ==8418== possibly lost: 0 bytes in 0 blocks ==8418== still reachable: 911,167 bytes in 1,993 blocks ==8418== suppressed: 0 bytes in 0 blocks ==8418== Reachable blocks (those to which a pointer was found) are not shown. ==8418== To see them, rerun with: --leak-check=full --show-leak-kinds=all ==8418== ==8418== For counts of detected and suppressed errors, rerun with: -v ==8418== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) So, there is a leak across the board not just OSX... I am going to read the source and use the force to see if I can fix this one, I mean, how hard could it be it even tells me where to look! _______________________________________________ Users-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/users-prolog _______________________________________________ Users-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/users-prolog