मैं हास्केल में उदाहरण स्थान लीक का संग्रह लिख रहा हूं, और यदि मैं वास्तव में लीक स्पेस नहीं लेता हूं तो ऐसे किसी भी उदाहरण को सम्मिलित करने के लिए एक टेस्ट सूट लिखना चाहूंगा।परीक्षण करें कि एक हास्केल फ़ंक्शन में स्पेस रिसाव है
क्या प्रत्येक के लिए अलग निष्पादन योग्य किए बिना उदाहरणों का परीक्षण करने का कोई तरीका है?
नील मिशेल एक बहुत प्रभावी है और बहुत कम तकनीकी तकनीक अपने ब्लॉग पर वर्णित है: [का पता लगाने के अंतरिक्ष लीक ] (http: // neilmitchell.blogspot.com/2015/09/detecting-space-leaks.html)। – Cactus
कुछ भविष्य में स्थिर विश्लेषकों का उपयोग करके इसे जांचना संभव होगा :) यदि इसे औपचारिक बनाया जा सकता है तो स्पेस लीक का पता लगाना केवल एल्गोरिदम लागू करने का मामला है। – Shersh
@ कैक्टस: यह एक अच्छा लेख है। दुर्भाग्य से मुझे नहीं पता कि जब आप स्मृति से बाहर निकलते हैं तो अपवादों को पकड़ना संभव होता है (जो समझ में आता है)। मैंने 'System.Posix.process.forkProcess' के साथ किसी अन्य प्रक्रिया में अपवाद उत्पन्न करने और' ClassyPrelude.catchAny' के साथ इसे पकड़ने का प्रयास किया, लेकिन यह अभी भी परीक्षण सूट के माध्यम से फिसल जाता है और क्रैश करता है। – seagreen