มีหลายสิ่งที่ต้องพูดในการใช้เวลาทดสอบการตั้งค่าการเก็บขยะต่างๆ แต่ตามที่กล่าวไว้ข้างต้นมักไม่มีประโยชน์ที่จะทำเช่นนั้น
ขณะนี้ฉันกำลังทำงานในโครงการที่เกี่ยวข้องกับสภาพแวดล้อมที่ จำกัด หน่วยความจำและข้อมูลจำนวนมากมีข้อมูลจำนวนมากที่ผลักดันสภาพแวดล้อมของฉันให้ถึงขีด จำกัด และแม้ว่าฉันจะสามารถลดการใช้หน่วยความจำลงได้ ตามทฤษฎีแล้วมันควรจะใช้งานได้ดี แต่ฉันก็ยังคงได้รับข้อผิดพลาดเกี่ยวกับพื้นที่ฮีป - ตัวเลือก GC แบบละเอียดแสดงให้ฉันเห็นว่ามันพยายามรวบรวมขยะ แต่ก็ไม่มีประโยชน์ ในดีบักเกอร์ฉันสามารถใช้ System.gc () ได้และแน่นอนว่าจะมีหน่วยความจำ "เหลือเฟือ" ที่พร้อมใช้งาน ...
ดังนั้นครั้งเดียวที่แอปพลิเคชันของฉันเรียก System.gc () คือเมื่อกำลังจะเข้าสู่ส่วนของรหัสซึ่งจะมีการจัดสรรบัฟเฟอร์ขนาดใหญ่ที่จำเป็นสำหรับการประมวลผลข้อมูลและการทดสอบหน่วยความจำว่างที่มีอยู่แสดงว่าฉันไม่ได้ รับประกันว่าจะมี โดยเฉพาะอย่างยิ่งฉันกำลังดูสภาพแวดล้อม 1gb ที่อย่างน้อย 300mb ถูกครอบครองโดยข้อมูลคงที่โดยข้อมูลที่ไม่คงที่จำนวนมากเกี่ยวข้องกับการดำเนินการยกเว้นเมื่อข้อมูลที่กำลังประมวลผลมีขนาดอย่างน้อย 100-200 MB ที่ แหล่งที่มา ทั้งหมดนี้เป็นส่วนหนึ่งของกระบวนการแปลงข้อมูลอัตโนมัติดังนั้นข้อมูลทั้งหมดจึงมีอยู่ในช่วงเวลาสั้น ๆ ในระยะยาว
น่าเสียดายที่ในขณะที่มีข้อมูลเกี่ยวกับตัวเลือกต่างๆสำหรับการปรับแต่งเครื่องเก็บขยะ แต่ดูเหมือนว่าส่วนใหญ่จะเป็นกระบวนการทดลองและข้อมูลเฉพาะระดับล่างที่จำเป็นในการทำความเข้าใจวิธีจัดการกับสถานการณ์เฉพาะเหล่านี้ไม่สามารถหาได้ง่ายๆ
ทั้งหมดที่กล่าวมาแม้ว่าฉันจะใช้ System.gc () ฉันก็ยังคงปรับแต่งโดยใช้พารามิเตอร์บรรทัดคำสั่งและจัดการเพื่อปรับปรุงเวลาในการประมวลผลโดยรวมของแอปพลิเคชันของฉันด้วยจำนวนที่ค่อนข้างมากแม้ว่าจะไม่สามารถข้าม สิ่งที่ทำให้สะดุดเกิดจากการทำงานกับกลุ่มข้อมูลขนาดใหญ่ ตามที่กล่าวไว้ System.gc () เป็นเครื่องมือ .... เป็นเครื่องมือที่ไม่น่าเชื่อถือและหากคุณไม่ระมัดระวังในการใช้งานคุณจะหวังว่ามันจะไม่ได้ผลบ่อยนัก