มันบอกไว้ที่นี่ว่า -Xss ใช้เพื่อ "ตั้งค่าขนาดสแต็กเธรด" หมายความว่าอย่างไร ใครช่วยให้ฉันเข้าใจสิ่งนี้ได้บ้าง
มันบอกไว้ที่นี่ว่า -Xss ใช้เพื่อ "ตั้งค่าขนาดสแต็กเธรด" หมายความว่าอย่างไร ใครช่วยให้ฉันเข้าใจสิ่งนี้ได้บ้าง
คำตอบ:
กระทู้ในโปรแกรม Java แต่ละคนมีของตัวเองสแต็ค สแต็กใช้เพื่อเก็บที่อยู่ผู้ส่งคืนฟังก์ชัน / เมธอดการเรียกใช้อาร์กิวเมนต์ ฯลฯ ดังนั้นหากเธรดมีแนวโน้มที่จะประมวลผลโครงสร้างขนาดใหญ่ผ่านอัลกอริทึมแบบเรียกซ้ำมันอาจต้องใช้สแต็กขนาดใหญ่สำหรับที่อยู่ผู้ส่งเหล่านั้นทั้งหมด ด้วย Sun JVM คุณสามารถกำหนดขนาดนั้นผ่านพารามิเตอร์นั้น
-Jflag
ไวยากรณ์ (เช่น. -J-Xss
)
มันตั้งค่าขนาดสแต็กบน JVM
คุณควรจะแตะมันในทั้งสองสถานการณ์นี้:
โดยปกติแล้วจะมาเมื่อ Xss ของคุณถูกตั้งค่ามากเกินไป - จากนั้นคุณต้องทำการปรับสมดุล (ทดสอบ!)
แต่ละเธรดมีสแต็กที่ใช้สำหรับตัวแปรโลคัลและค่าภายใน ขนาดสแต็ก จำกัด การโทรของคุณได้ลึก โดยทั่วไปนี่ไม่ใช่สิ่งที่คุณต้องเปลี่ยน
หากฉันไม่เข้าใจผิดนี่เป็นสิ่งที่บอกกับ JVM ว่าจะรับสายที่ต่อเนื่องได้เท่าไหร่ก่อนที่จะออก StackOverflowError ไม่ใช่สิ่งที่คุณต้องการเปลี่ยนโดยทั่วไป