मैं उबंटू 12.04 (सटीक) 64-बिट पर आर 2.15.3 का उपयोग कर रहा हूं। अगर मैं valgrind में आर चलाएँ: --vanillaमेरी आर मेमोरी लीक है?
आर -d "valgrind" मैं फिर q() का उपयोग कर कार्यक्रम से बाहर निकलें और मैं निम्नलिखित रिपोर्ट प्राप्त:
==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)
हाल ही में आर अक्सर दुर्घटनाग्रस्त हो रहा है, खासकर जब मैं आरसीपीपी के माध्यम से सी ++ कार्यों को कॉल करता हूं, क्या यह कारण हो सकता है? धन्यवाद!
धन्यवाद! मैंने वाल्ग्रिंड आउटपुट को काफी भ्रमित पाया। मुझे लीक के बारे में संदेह होना शुरू हो गया क्योंकि केवल आरसीपीपी फ़ंक्शन को कॉल करना: न्यूमेरिकमैट्रिक्स myMat (int nCols, int nRows) { न्यूमेरिकमैट्रिक्स आउट (nRows, nCols); वापस लौटें; } कभी-कभी आर को लूप में क्रैश करने का कारण बनता है यदि मैं इस कार्य को आर आर लूप में क्रमशः कॉल करता हूं: (ii में 1: 10^6) चटाई <- myMat (100, 100) –
यदि आप एक सेगफॉल्ट को पुन: पेश कर सकते हैं , और शायद 'gdb' के तहत चलाया जा सकता है, तो हम संभवतः चीजों को बेहतर बना सकते हैं। अन्यथा, यह लगभग असंभव है। –
आप सही हैं, अगर मैं त्रुटि को पुन: उत्पन्न करने का प्रबंधन करता हूं तो मैं इसे किसी अन्य प्रश्न में पोस्ट करूंगा। धन्यवाद –