जब हमारे आवेदन कुछ समय के लिए चलते हैं, उदाहरण के लिए, घंटों तक दौड़ते हैं, एसबीसीएल ढेर थका हुआ अपवाद फेंक देगा।एसबीबी अपवाद कचरा संग्रह के दौरान ढेर थका हुआ
Heap exhausted during garbage collection: 1968 bytes available, 2128 requested.
Gen StaPg UbSta LaSta LUbSt Boxed Unboxed LB LUB !move Alloc Waste Trig WP GCs Mem-age
0: 0 0 0 0 0 0 0 0 0 0 0 5368709 0 0 0.0000
1: 0 0 0 0 0 0 0 0 0 0 0 5368709 0 0 0.0000
2: 0 0 0 0 0 0 0 0 0 0 0 5368709 0 0 0.0000
3: 101912 101913 0 0 19362 20536 0 0 0 162867456 554752 102714709 0 1 1.4405
4: 130984 131071 0 0 29240 18868 0 0 25 191196152 5854216 128537781 14785 1 0.6442
5: 75511 81013 0 0 16567 17127 92 99 36 132974568 5818392 2000000 16565 0 0.0000
6: 0 0 0 0 7949 1232 0 0 0 37605376 0 2000000 7766 0 0.0000
Total bytes allocated = 524643552
Dynamic-space-size bytes = 536870912
GC control variables:
*GC-INHIBIT* = true
*GC-PENDING* = true
*STOP-FOR-GC-PENDING* = false
fatal error encountered in SBCL pid 3281(tid 3067845440):
Heap exhausted, game over.
Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb>
कोई सुझाव?
सुझाव: अपने ढेर को समाप्त न करें। ऐसा लगता है कि आपके पास कुछ स्मृति रिसाव है, i। ई। चीजों को पकड़ रहे हैं ताकि वे एकत्रित कचरा न हो। – Svante
मैं कभी-कभी एक ही समस्या में भाग गया और यह निर्धारक नहीं था इसलिए मैं (अभी तक) एक बग्रेपोर्ट दर्ज करने में असमर्थ था या मेरे हिस्से में त्रुटि नहीं ढूंढ पाया। लेकिन मुझे सामना करने वाला सामान्य पैटर्न यह था कि मैंने अल्पकालिक उपयोग के लिए बहुत सारी स्मृति आवंटित की। चूंकि एसबीसीएल [पीढ़ी के कचरा संग्रह] का उपयोग करता है {http://www.sbcl.org/manual/#History-and- कार्यान्वयन-of- एसबीसीएल} यह उच्च पीढ़ियों की खराब समाशोधन के कारण हो सकता है। इस प्रकार आप अलग-अलग धागे में उच्च मेम उपयोग के साथ शॉर्टलिविंग फ़ंक्शंस को मजबूर करना चाहते हैं क्योंकि इसने मेरे लिए समस्या हल की है क्योंकि थ्रेड मरने के बाद मेम मुक्त हो जाएगा। – Sim
एक और समाधान 'sbcl - गतिशील-स्थान-आकार' –
Sim