1
ฉันจะ จำกัด จำนวนหน่วยความจำที่ใช้ได้กับกระบวนการได้อย่างไร
ฉันกำลังพัฒนาโปรแกรมที่กำลังดำเนินอยู่ บางครั้งมันก็สิ้นสุดการจัดสรรหน่วยความจำจำนวนมาก (>> 10G บนเครื่องที่มีหน่วยความจำกายภาพ 8G) ทำให้ระบบไม่ตอบสนอง ฉันต้องการ จำกัด จำนวนหน่วยความจำที่กระบวนการสามารถจัดสรรได้ วิธีปกติที่ฉันจะทำคือ: ulimit -m 4000000 ; ./myprogram ... ซึ่งควรฆ่าโปรแกรมของฉันหากพยายามใช้หน่วยความจำมากกว่า 4GB ใน OS X El Capitan สิ่งนี้ดูเหมือนว่าจะไม่มีผลกระทบ แม้ulimit -m 1(จำกัด โปรแกรมทั้งหมดให้เหลือเพียง 1kB ของหน่วยความจำ!) ก็ไม่มีประสิทธิภาพ ฉันจะตั้งค่าขอบเขตบนของหน่วยความจำที่พร้อมใช้งานสำหรับกระบวนการเฉพาะได้อย่างไร