การใช้งานหน่วยความจำ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

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


Developer Console มีเครื่องมือสองอย่างสำหรับการตรวจสอบการใช้งานหน่วยความจำ:

  • หน่วยความจำ — ดูการใช้งานหน่วยความจำแบบเรียลไทม์ตามหมวดหมู่การใช้งาน รวมถึงองค์ประกอบที่กำหนดเองของคุณและกระบวนการภายในของเครื่องยนต์

  • Luau heap — สร้างภาพถ่ายของหน่วยความจำ heap ซึ่งหมายถึงการจัดสรรหน่วยความจำของสคริปต์ของคุณ เครื่องมือนี้มีหลายมุมมองเพื่อช่วยให้คุณระบุการจัดสรรหน่วยความจำและปัญหาจากมุมมองที่แตกต่างกัน เช่น ประเภทวัตถุและคลาสของเครื่องยนต์ นอกจากนี้ยังช่วยให้คุณสร้างภาพถ่ายหลายภาพเพื่อเปรียบเทียบบันทึกการใช้งานหน่วยความจำเมื่อเวลาผ่านไป

You can open the console during a testing or live game session using any of the following ways:

  • Press F9.
  • Type /console into the chat.
  • Use the in-game menu:
    1. Open the in-game Roblox Menu.

    2. Select the Settings tab.

    3. Scroll down to Developer Console and click Open.

หน่วยความจำ

เครื่องมือ หน่วยความจำ จัดประเภทและแสดงการใช้งานหน่วยความจำแบบเรียลไทม์ แสดงการใช้งานหน่วยความจำใน MB ของแต่ละหมวดหมู่และสร้างกราฟการเปลี่ยนแปลงการใช้งานเมื่อเวลาผ่านไป

ในการดูการจัดสรรหน่วยความจำ:

  1. เปิด Developer Console

  2. ขยายเมนูเครื่องมือเพื่อเลือก Memory

    เมนูดรอปดาวน์ของเครื่องมือ Developer Console ทั้งหมดโดยที่ตัวเลือก Memory ถูกไฮไลต์ไว้สำหรับการเลือก
  3. ขยายดรอปดาวน์ลูกค้า-เซิร์ฟเวอร์เพื่อเลือก Client หรือ Server

  4. สํารวจหมวดหมู่การใช้งานหน่วยความจำและรายการ หากคุณต้องการดูการใช้งานเมื่อเวลาผ่านไป ขยายหมวดหมู่เพื่อแสดงกราฟ

    • CoreMemory — การใช้งานหน่วยความจำโดยกระบวนการหลักของเครื่องยนต์ ได้แก่ การเชื่อมต่อเครือข่าย อวาตาร์ และองค์ประกอบของ GUI ที่คุณไม่มีการควบคุมโดยตรง

    • PlaceMemory — การใช้งานหน่วยความจำตามวิธีที่คุณสร้างประสบการณ์ของคุณ รวมถึงโมเดล พื้นที่ ส่วนต่างๆ สคริปต์ และองค์ประกอบที่กำหนดเองอื่นๆ ที่คุณเพิ่มลงในประสบการณ์ของคุณ

      หมวดหมู่คำอธิบาย
      HttpCacheทรัพย์สิน (รูปภาพ, เมช, ฯลฯ) ที่โหลดจากเซิร์ฟเวอร์ Roblox และบันทึกไว้ในหน่วยความจำในแคช
      InstancesInstances ในสถานที่
      Signalsสัญญาณที่กระตุ้นระหว่างอุทกภัย (เหตุการณ์ที่เกิดขึ้นบนอุทกภัยหนึ่งเพื่อกระตุ้นเหตุการณ์บนอุทกภัยอีกหนึ่ง)
      LuaHeapหน่วยความจำ heap สำหรับทั้งสคริปต์หลัก (สคริปต์ที่มาพร้อมกับลูกค้า Roblox) และสคริปต์ที่กำหนดเอง
      Scriptสคริปต์ Luau
      PhysicsCollisionข้อมูลการชนเพื่อการจำลองทางฟิสิกส์
      PhysicsPartsเรขาคณิตและเคลื่อนที่ทางฟิสิกส์
      GraphicsSolidModelsข้อมูลกราฟิกสำหรับการเรนเดอร์โมเดลที่เป็นของแข็ง
      GraphicsMeshPartsกราฟิกสำหรับวัตถุ MeshPart
      GraphicsParticlesกราฟิกสำหรับระบบอนุภาค
      GraphicsPartsกราฟิกสำหรับส่วนต่างๆ
      GraphicsSpatialHashการเรนเดอร์ทั่วไป
      GraphicsTerrainกราฟิกสำหรับพื้นผิว
      GraphicsTextureหน่วยความจำพิเศษ
      GraphicsTextureCharacterหน่วยความจำชิ้นส่วนสำหรับตัวละคร
      Soundsเสียงในหน่วยความจำ
      StreamingSoundsเสียงที่สตรีมมิ่ง
      TerrainVoxelsพิกเซลพื้นดิน
      TerrainPhysicsฟิสิกส์ของพื้นผิว
      Guiหน่วยความจำที่ใช้โดยองค์ประกอบ GUI ทั่วไป
      Animationหน่วยความจำที่ใช้สำหรับข้อมูลอนิเมชั่น เช่น ท่าทางและข้อมูลที่จำไว้ของ KeyframeSequence สำหรับอนิเมชันอวาตาร์
      Navigationหน่วยความจำที่ใช้โดยโครงสร้างสนับสนุนสำหรับ PathfindingService
    • UntrackedMemory — การจัดสรรหน่วยความจำที่ระบบไม่สามารถกำหนดได้อย่างง่ายดายกับแหล่งที่มาที่เฉพาะเจาะจง

    • PlaceScriptMemory — การใช้งานหน่วยความจำของสคริปต์ของคุณ โดยมีข้อมูลเชิงลึกเกี่ยวกับวิธีที่สคริปต์แต่ละรายการและแท็กหน่วยความจำที่กำหนดเองมีส่วนช่วยในการใช้งานหน่วยความจำโดยรวม

    • CoreScriptMemory — การใช้งานหน่วยความจำโดยสคริปต์ภายในเครื่องยนต์ที่คุณไม่มีการควบคุมโดยตรง

    ในหมวดหมู่เหล่านี้ PlaceMemory และ PlaceScriptMemory เป็นหมวดหมู่ที่สำคัญที่สุดสำหรับการเพิ่มประสิทธิภาพการทำงาน เพราะมันช่วยให้คุณเข้าใจว่าการสร้างและการเขียนสคริปต์ของคุณมีผลต่อการบริโภคหน่วยความจำอย่างไรและพื้นที่ที่อาจต้องปรับปรุง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ PlaceScriptMemory ใช้เครื่องมือ Luau heap เพื่อสร้างภาพถ่ายและวิเคราะห์การจัดสรรหน่วยความจำตามมาตรวัดที่แตกต่างกัน

Luau heap

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

สร้างภาพถ่าย

ในการสร้างภาพถ่ายของการจัดสรรหน่วยความจำของคุณ:

  1. เปิด Developer Console

  2. ขยายเมนูเครื่องมือเพื่อเลือก LuauHeap

    เมนูดรอปดาวน์ของเครื่องมือ Developer Console ทั้งหมดโดยที่ตัวเลือก LuauHeap ถูกไฮไลต์ไว้สำหรับการเลือก
  3. ขยายดรอปดาวน์ลูกค้า-เซิร์ฟเวอร์เพื่อเลือก Client หรือ Server

  4. คลิกปุ่ม Create Snapshot

วิเคราะห์การใช้งานหน่วยความจำ

เครื่องมือมีมุมมองมากมายในการใช้งานหน่วยความจำของ Luau:

  • กราฟ — แสดงต้นไม้การใช้งานหน่วยความจำรวม โดยแต่ละโหนดแทนวัตถุที่มีการจัดสรรหน่วยความจำ
  • แป Tags — แสดงขนาดและจำนวนหน่วยความจำตามประเภทการทำงาน เช่น function, table, และ thread
  • หมวดหมู่หน่วยความจำ — แสดงขนาดและจำนวนหน่วยความจำตามหมวดหมู่ที่กำหนดโดยเครื่องยนต์ เครื่องยนต์จะกำหนดหมวดหมู่หน่วยความจำให้กับวัตถุในเวลาจัดสรร
  • คลาสวัตถุ — แสดงขนาดและจำนวนหน่วยความจำตามคลาสของเครื่องยนต์ที่สคริปต์ของคุณใช้และเก็บอินสแตนซ์ของพวกมัน เช่น EnumItem, Animation, CFrame มุมมองนี้สำคัญมาก เนื่องจากจะไม่แสดงการใช้งานหน่วยความจำภายในเครื่องยนต์ แต่จะแสดงเฉพาะ VM ของ Luau
  • อ้างอิงเอกลักษณ์ และ อินสแตนซ์ที่ไม่มีพ่อแม่ — แสดงจำนวนและจำนวนรวมของอินสแตนซ์สำหรับ อ้างอิงเอกลักษณ์ หรือ อ้างอิงที่เหลือทั้งหมด ที่ไม่มีพ่อแม่ในโมเดลข้อมูลและเข้าถึงได้โดยสคริปต์เท่านั้น นอกจากนี้ยังแสดงเส้นทางทั้งหมดที่ยึดวัตถุอินสแตนซ์

กราฟ

มุมมอง กราฟ เป็นมุมมองที่ละเอียดและซับซ้อนที่สุดในทุกมุมมองของ Luau heap มันแสดงต้นไม้การใช้งานหน่วยความจำรวม โดยแต่ละโหนดแทนวัตถุที่มีการจัดสรรหน่วยความจำ ต้นไม้จะแสดงให้เห็นว่าวัตถุเชื่อมต่อกันอย่างไรและระบุเส้นทางที่สั้นที่สุดระหว่างการอ้างอิงวัตถุ มันมีคอลัมน์ขนาดหน่วยความจำดังนี้:

  • ขนาด — การใช้งานหน่วยความจำเองบวกกับการใช้งานหน่วยความจำที่อยู่ภายในโครงสร้างข้อมูล
  • ตนเอง — หน่วยความจำที่จัดสรรโดยตรงสำหรับโครงสร้างข้อมูลเอง โดยไม่รวมถึงการใช้งานหน่วยความจำของเนื้อหาที่มันมีอยู่
ตัวอย่างมุมมองกราฟ

รากของกราฟต้นไม้คือ registry ซึ่งเก็บการอ้างอิงของเครื่องยนต์และ Luau ทั้งหมด เช่น ฟังก์ชันที่เชื่อมโยงกับสัญญาณหรือห้องสมุดงาน ฟังก์ชันทั่วไประดับสูง ตารางที่ส่งคืนโดยสคริปต์โมดูล และฟังก์ชัน รวมถึงตารางและคลาสทั่วไประดับสูง มันมักจะเป็นพ่อแม่รายการทั่วไปดังต่อไปนี้:

  • Module @Path.To.Module คือตารางที่ส่งคืนโดยสคริปต์โมดูล
  • name:123 =Path.To.Module เป็นฟังก์ชันภายในสคริปต์ที่กำหนด ฟังก์ชันอนุรักษ์ไม่มีชื่อ โหนดระดับบนมักจะอ้างอิงถึงฟังก์ชันของสคริปต์ทั่วไปรวมกัน ตัวอย่างเช่น :1= Workspace.[Username].Animate
  • upvalue คือการอ้างอิงสำหรับฟังก์ชันที่ถูกจับ ควรดูที่ จับพื้นที่เฉพาะท้องถิ่น สำหรับข้อมูลเพิ่มเติม
  • env หมายถึงสภาพแวดล้อมของฟังก์ชัน ในกรณีส่วนใหญ่ มันคือตารางที่แสดงถึงขอบเขตทั่วไปรวมของสคริปต์
  • globals หมายถึงสภาพแวดล้อมของเธรด
  • [key] แทนวัตถุที่ทำหน้าที่เป็นคีย์ของตาราง
  • array แทนอาร์เรย์
  • stack หมายถึงอาร์เรย์ที่เก็บทุกตัวแปรโลคัลของฟังก์ชัน
  • constants แทนค่าคงที่ทั้งหมดที่ฟังก์ชันใช้งาน

หมวดหมู่หน่วยความจำ

มุมมอง หมวดหมู่หน่วยความจำ แสดงขนาดและจำนวนหน่วยความจำตามหมวดหมู่หน่วยความจำ ซึ่งเครื่องยนต์จะกำหนดให้กับวัตถุในเวลาจัดสรร โดยค่าเริ่มต้น หมวดหมู่หน่วยความจำจะมีชื่อเดียวกันกับสคริปต์หรือคุณสามารถกำหนดชื่อหมวดหมู่หน่วยความจำที่กำหนดเองโดยใช้ฟังก์ชัน debug.setmemorycategory

การอ้างอิงเอกลักษณ์และอินสแตนซ์ที่ไม่มีพ่อแม่

มุมมอง การอ้างอิงเอกลักษณ์ และ อินสแตนซ์ที่ไม่มีพ่อแม่ มีความเกี่ยวข้องกัน ทั้งคู่แสดงการใช้งานหน่วยความจำของอินสแตนซ์ซึ่งไม่มีพ่อแม่ในโมเดลข้อมูลและเข้าถึงได้โดยสคริปต์เท่านั้น พร้อมกับเส้นทางทั้งหมดที่ยึดวัตวัตถุของอินสแตนซ์ ถ้าอินสแตนซ์อ้างอิงไว้ภายในสคริปต์ของ Luau เท่านั้น มันจะปรากฏอยู่ใน การอ้างอิงเอกลักษณ์ มิฉะนั้น มันยังมีการใช้งานโดยระบบของ Roblox และจะปรากฏใน อินสแตนซ์ที่ไม่มีพ่อแม่ มุมมองทั้งสองแสดงสองตัวชี้วัด:

  • จำนวน — จำนวนอินสแตนซ์ที่มีชื่อเดียวกันที่สามารถเข้าถึงได้จากเส้นทางเดียวกัน เช่น จำนวนหลายอินสแตนซ์ที่ชื่อว่า Dragon ในตารางเดียวกัน
  • อินสแตนซ์ทั้งหมด — จำนวนรวมของวัตถุทั้งหมดในรากเหล่านั้น ซึ่งรวมถึงทุกชิ้นส่วน สคริปต์ และวัตถุเสียงที่สร้างอินสแตนซ์ Dragon
ตัวอย่างมุมมองการอ้างอิงเอกลักษณ์

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

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ