ฉันจะเพิ่มนี่เป็นความคิดเห็นในการตอบสนองต่อคำตอบของ @Nathan Reed ยกเว้นว่ามันใหญ่เกินไปที่จะแสดงความคิดเห็นและบางทีในกรณีใด ๆ ที่สมควรที่จะเป็นคำตอบที่แยกต่างหาก
เรากำลังทำสิ่งที่ถูกต้องในคำตอบของเขาและในความเป็นจริงมีความคิดเห็นในแหล่งที่มาที่เชื่อมโยงไปยังหน้านี้ ส่วนใหญ่ทำงานได้ดีมากยกเว้นว่าทุกๆสองหรือสามเดือนเราได้สูญเสียเซิร์ฟเวอร์โดยการสุ่มที่ไม่ตอบสนองเนื่องจากมีข้อความค้นหาจำนวนมาก
สาเหตุที่แท้จริงของปัญหามาถึงความสนใจของฉันในขณะที่ทำการตรวจสอบประสิทธิภาพเพื่อลองและสิ่งที่ก่อให้เกิดสิ่งนี้ อาจเป็นเรื่องที่น่ากังวลเฉพาะเมื่อคุณอนุญาตวัตถุที่ทับซ้อนกันเท่านั้น ในเกมของเราเราทำและในกรณีที่เลวร้ายที่สุดในบางครั้งมันจะนำไปสู่การฆ่าลึกที่มีประสิทธิภาพ
เรามีเคสขอบหนึ่งที่มีวัตถุประมาณ 100 ชิ้นซึ่งมีดิสก์ล้อมรอบถูกจัดกลุ่มในบริเวณใกล้เคียงกันมาก สิ่งนี้นำไปสู่ปัญหาการขัดขวางที่ลึกมากในต้นไม้เพราะเรามาถึงจุดที่วัตถุมีขนาดใหญ่กว่าพื้นที่ที่ปกคลุมด้วยโหนดควอดทรีดังนั้นวัตถุใหม่แต่ละชิ้นจึงแสดงขึ้นในหลายโหนดซึ่งนำไปสู่การแบ่งขนาดใหญ่ของ ต้นไม้จึงทำให้ปัญหาหิมะออกจากการควบคุม
สิ่งที่เกิดขึ้นจากสิ่งนี้คือถ้าคุณอนุญาตให้ส่วนของวัตถุทับซ้อนกันให้จับตาดูสิ่งต่าง ๆ หากคุณได้รับกลุ่มวัตถุแน่นเพื่อให้แน่ใจว่าต้นไม้ของคุณจะไม่ลึกเกินไป
วิธีแก้ปัญหาที่ฉันกำลังตรวจสอบอยู่คือเก็บวัตถุเป็นจุดแล้วเมื่อทำการค้นหาให้เพิ่มขอบเขตของสี่เหลี่ยมการค้นหาด้วยรัศมีสูงสุดที่เก็บไว้ในต้นไม้ สิ่งนี้น่าจะเหมาะกับเราเพราะต้นไม้เป็นการค้นหาผ่านครั้งแรกจากนั้นเราจะทำการตรวจสอบตามช่วงวงกลมที่แท้จริงพร้อมกับการตรวจสอบเกณฑ์อื่น ๆ อีกสองสามรายการดังนั้นการแจ้งเตือนที่ผิดพลาดพิเศษจะถูกกรองออก
ไมล์สะสมจริงของคุณอาจแตกต่างกันไป