Używam R 2.15.3 na Ubuntu 12.04 (precyzyjne) 64-bit. Jeśli biegnę R w valgrind:My R ma wycieki pamięci?
R -d "valgrind" --vanilla
I wtedy wyjść z programu za pomocą q() i pojawia się następujący raport:
==7167== HEAP SUMMARY:
==7167== in use at exit: 28,239,464 bytes in 12,512 blocks
==7167== total heap usage: 28,780 allocs, 16,268 frees, 46,316,337 bytes allocated
==7167==
==7167== LEAK SUMMARY:
==7167== definitely lost: 120 bytes in 2 blocks
==7167== indirectly lost: 480 bytes in 20 blocks
==7167== possibly lost: 0 bytes in 0 blocks
==7167== still reachable: 28,238,864 bytes in 12,490 blocks
==7167== suppressed: 0 bytes in 0 blocks
==7167== Rerun with --leak-check=full to see details of leaked memory
==7167==
==7167== For counts of detected and suppressed errors, rerun with: -v
==7167== Use --track-origins=yes to see where uninitialised values come from
==7167== ERROR SUMMARY: 385 errors from 5 contexts (suppressed: 2 from 2)
Ostatnio R często się zawiesza, szczególnie gdy wywołuję funkcje C++ przez Rcpp, czy to może być powód? Dzięki!
Dzięki! Znalazłem wynik valgrinda dość zagmatwany. Zacząłem mieć wątpliwości dotyczące wycieków, ponieważ po prostu wywołanie funkcji Rcpp, takich jak: NumericMatrix myMat (int nCols, int nows) { NumericMatrix out (nows, nCols); powrócić; } jest czasami powodując R awarię z segfault jeśli wywołać tę funkcję iteracyjnie w pętli R: do (ii w stosunku 1: 10^6) maty <- myMat (100, 100) –
Jeśli można odtworzyć segfault i może działać pod 'gdb', wtedy możemy poprawić sytuację. W przeciwnym razie jest prawie niemożliwe. –
Masz rację, jeśli uda mi się odtworzyć błąd, opublikuję go w innym pytaniu. Dziękujemy –