คำถามติดแท็ก memory

หน่วยความจำหมายถึงอุปกรณ์ทางกายภาพที่ใช้ในการจัดเก็บโปรแกรมหรือข้อมูลบนพื้นฐานชั่วคราวหรือถาวรสำหรับใช้ในคอมพิวเตอร์หรืออุปกรณ์อิเล็กทรอนิกส์ดิจิตอลอื่น ๆ

2
ข้อดีและข้อเสียของการสื่อสารระหว่างกระบวนการทำผ่านซ็อกเก็ตและหน่วยความจำที่ใช้ร่วมกันคืออะไร
ฉันเข้าใจว่าสองตัวเลือกอื่น ๆ อีกมากมายสำหรับการสื่อสารระหว่างกระบวนการสามารถ: แชร์หน่วยความจำ ซ็อกเก็ต จริงๆแล้วฉันเห็นตัวเลือกทั้งสองนี้ถูกเปิดเผยโดย Intellij Idea สำหรับการดีบักแอปพลิเคชัน Java ฉันต้องการทราบว่าข้อดีและข้อเสียของแต่ละวิธีคืออะไร

1
ทำไมต้องมีค่าใช้จ่ายเมื่อจัดสรรออบเจ็กต์ / อาร์เรย์ใน Java
มีอาร์เรย์จำนวนเท่าใดใน Java? สมมติว่าเป็นเครื่อง 64 บิตและสมมติว่ามีองค์ประกอบ N ในอาร์เรย์ดังนั้นองค์ประกอบเหล่านี้จะใช้ 2 * N, 4 * N หรือ 8 * N ไบต์สำหรับอาร์เรย์ประเภทต่างๆ และการบรรยายใน Coursera บอกว่ามันจะครอบครอง 2 * N + 24, 4 * N + 24 หรือ 8 * N + 24 ไบต์สำหรับอาร์เรย์องค์ประกอบ N และ 24 ไบต์เรียกว่าโอเวอร์เฮด แต่ไม่ได้อธิบายว่าทำไมโอเวอร์เฮดจึงเป็น จำเป็น นอกจากนี้วัตถุยังมีค่าใช้จ่ายซึ่งเป็น 16 ไบต์ ค่าโสหุ้ยเหล่านี้คืออะไร? 24/16 ไบต์ประกอบด้วยอะไรบ้าง …
9 java  memory 

4
กำลังวิเคราะห์การใช้หน่วยความจำ: Java vs C ++ เล็กน้อย
การใช้หน่วยความจำของวัตถุจำนวนเต็มที่เขียนใน Java เปรียบเทียบ \ contrast กับการใช้หน่วยความจำของวัตถุจำนวนเต็มที่เขียนใน C ++ อย่างไร ความแตกต่างเล็กน้อยหรือไม่ ไม่แตกต่าง? ความแตกต่างใหญ่? ฉันคาดเดาว่ามันเหมือนกันเพราะ int เป็น int โดยไม่คำนึงถึงภาษา (?) เหตุผลที่ฉันถามสิ่งนี้เพราะฉันกำลังอ่านเกี่ยวกับความสำคัญของการรู้ว่าข้อกำหนดหน่วยความจำของโปรแกรมเมื่อใดจะทำให้โปรแกรมเมอร์ไม่สามารถแก้ไขปัญหาที่กำหนดได้ สิ่งที่ทำให้ฉันหลงใหลคือจำนวนหน่วยความจำที่จำเป็นสำหรับการสร้างวัตถุ Java ชิ้นเดียว ยกตัวอย่างเช่นวัตถุจำนวนเต็ม แก้ไขให้ฉันถ้าฉันผิด แต่วัตถุจำนวนเต็ม Java ต้องการหน่วยความจำ 24 ไบต์: 4 ไบต์สำหรับตัวแปรอินสแตนซ์ของมัน 16 ไบต์ของค่าใช้จ่าย (อ้างอิงถึงคลาสของวัตถุข้อมูลการรวบรวมขยะ & ข้อมูลการซิงโครไนซ์) การซ้อน 4 ไบต์ เป็นอีกตัวอย่างหนึ่งอาร์เรย์ Java (ซึ่งถูกนำมาใช้เป็นวัตถุ) ต้องการ 48 + ไบต์: ข้อมูลส่วนหัว 24 ไบต์ ค่าใช้จ่ายของวัตถุ …

3
ฉันจะตรวจสอบหน่วยความจำ JVM ในวิธีที่เหมาะสมได้อย่างไร
ฉันกำลังคิดว่าเราจะตรวจสอบหน่วยความจำ JVM ด้วยค่าโสหุ้ยต่ำในสภาพแวดล้อมการผลิตได้อย่างไรภายใต้ชั่วโมงที่ยุ่ง สมมติว่าฉันมีเซิร์ฟเวอร์แอพ Tomcat สองตัวในการผลิตโหลดบาลานซ์ตั้งค่าไว้ด้านหลัง หากฉันเห็นสถิติหน่วยความจำ jvm ฉันสามารถบอก load balance ให้หยุดส่งคำขอไปยังเซิร์ฟเวอร์ซึ่งจะพบปัญหา OOM ทำให้เหมาะสมหรือไม่ Jconsole หรือ VisualVM กินการเพิ่มประสิทธิภาพมากขึ้นไม่ใช่ตัวเลือกของฉัน

3
ตัวจัดสรรฮีปแบบกำหนดเอง
โปรแกรมส่วนใหญ่ค่อนข้างไม่เป็นทางการเกี่ยวกับการจัดสรรฮีปแม้ภาษาที่ใช้งานโปรแกรมต้องการจัดสรรออบเจ็กต์ใหม่มากกว่าการดัดแปลงฮีทเก่าและปล่อยให้ผู้รวบรวมขยะกังวลเกี่ยวกับการปลดปล่อยสิ่งต่าง ๆ ในการเขียนโปรแกรมฝังตัวเซกเตอร์แบบเงียบอย่างไรก็ตามมีหลายแอปพลิเคชันที่คุณไม่สามารถใช้การจัดสรรฮีปได้ทั้งหมดเนื่องจากหน่วยความจำและข้อ จำกัด แบบเรียลไทม์ จำนวนวัตถุของแต่ละประเภทที่จะจัดการเป็นส่วนหนึ่งของข้อมูลจำเพาะและทุกอย่างได้รับการจัดสรรแบบคงที่ การเขียนโปรแกรมเกม (อย่างน้อยกับเกมที่มีความทะเยอทะยานเกี่ยวกับการผลักฮาร์ดแวร์) บางครั้งก็อยู่ระหว่าง: คุณสามารถใช้การจัดสรรแบบไดนามิก แต่มีหน่วยความจำเพียงพอและมีข้อ จำกัด แบบเรียลไทม์อ่อนที่คุณไม่สามารถถือว่าตัวจัดสรรเป็นกล่องดำ ให้ใช้การรวบรวมขยะอย่างเดียวดังนั้นคุณต้องใช้ตัวจัดสรรแบบกำหนดเอง นี่คือหนึ่งในเหตุผลที่ C ++ ยังคงใช้กันอย่างแพร่หลายในอุตสาหกรรมเกม มันช่วยให้คุณทำสิ่งต่าง ๆ เช่นhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html มีโดเมนอื่นใดบ้างที่อยู่ระหว่างนั้น? นอกเหนือจากเกมแล้วมีการใช้ตัวจัดสรรแบบกำหนดเองอย่างหนักที่ไหน?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.