ฉันจำเป็นต้องรู้ว่าเครื่อง Windows มีหน่วยความจำกายภาพเท่าใดโดยใช้ Perl
ฉันได้ลองใช้ Win32::SystemInfo แล้ว อย่างไรก็ตาม โมดูลนี้ระบุคำเตือนต่อไปนี้:
บนคอมพิวเตอร์ Intel x86 ที่มีหน่วยความจำมากกว่า 2 GB และน้อยกว่า 4 GB ฟังก์ชัน MemoryStatus จะคืนค่า 2 GB สำหรับ TotalPhys เสมอ ในทำนองเดียวกัน หากหน่วยความจำที่มีอยู่ทั้งหมดอยู่ระหว่าง 2 ถึง 4 GB AvailPhys จะถูกปัดเศษลงเป็น 2 GB
ดังนั้นในเครื่องที่มีหน่วยความจำกายภาพ 2-4 GB ฉันได้รับคำตอบที่ผิด
มีวิธีรับหน่วยความจำกายภาพในปริมาณที่ถูกต้องหรือไม่? อาจจะเป็นโมดูลอื่น? หรือใช้ Win32::API โดยตรง?
แก้ไข: จากความคิดเห็นที่ผู้คนให้ไว้ที่นี่ ดูเหมือนว่าข้อจำกัดจะอยู่ใน Win32 API และไม่เฉพาะเจาะจงกับ Win32::SystemInfo. อย่างไรก็ตาม ระบบปฏิบัติการจะรู้แน่ชัดว่ามี RAM เหลืออยู่เท่าใด ดังนั้นจึงต้องมีวิธีดึงข้อมูลนั้นออกมา หากไม่ใช่ภาษา Perl อาจเป็นภาษาอื่นใช่ไหม