MicroProfiler การเดินทาง

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

เส้นทางนี้แสดงวิธีการใช้ MicroProfiler เพื่อค้นหาด้านล่างของประสบการณ์และระบุสาเหตุการณ์ที่เป็นปัญหา ดาวน์โหลดประสบการณ์, เปิดจากไฟล์ ใน Studio, และติดตามต่อไป


ระบุปัญหา

  1. หลังจากที่คุณเปิดประสบการณ์ใน Studio คุณจะเริ่มทดสอบด้วย F5 หรือปุ่ม เล่น

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

    Debug stats summary showing 45 FPS.

    หมายเหตุว่าอัตราเฟรมต่ำกว่า 60 เฟรมต่อวินาที (ยิงมุมมองบุคคลที่หนึ่ง)

  3. เปิด MicroProfiler โดยกด CtrlAltF6 ( 1> ⌥1> 3> F63> )

    The MicroProfiler after opening it.

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

  4. หยุด MicroProfiler โดยการกด CtrlP ( P ) การหยุดชั่วคราวด้วยลัดเว้นวรรคเปิด 2> โหมดรายละเอียด2> .

  5. คลิกและลากเพื่อดึงกราฟิก หมายเหตุว่าการทำงานที่เฉพาะในเส้นทางกระบวนการนี้ใช้เวลาในการประมวลผลมากเมื่อเปรียบเทียบกับเส้นทางกระบวนการหลัก โปรดอย่าลากเหนือ RunService.Stepped

    Detailed mode with long labels for processes.
  6. เส้นสแน็ปในเวลาชี้นำทางแสดงถึงระดับรหัส ดังนั้นจงเลื่อนเมาส์ลงและขึ้นเพื่อลองตรวจสอบปัญหา

    On-hover details for various processes, with LocalScript highlighted. On-hover details for various processes, with Raycast highlighted.

    หมายเหตุฉลาก LocalScript ซึ่งระบุชื่อของสคริปต์และฉลาก Raycast ซึ่งระบุว่าปัญหานี้อาจเกี่ยวข้องกับการเรนเดอร์

การสร้างชื่อเรื่อง Troubleshoot

ตอนนี้ MicroProfiler ได้ให้จุดเริ่มต้นแล้ว รหัส

  1. หยุดการทดสอบเล่นและกรองหน้าต่าง Explorer สําหรับ localscript เพื่อค้นหาไฟล์

    A view of filtering in the Explorer window.

    การค้นหาสำหรับ raycast การดำเนินการ:


    local RAYS_PER_SECOND = 1500
    local function onStepped()
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    end
    RunService.Stepped:Connect(onStepped)

    โดยเฉพาะอย่างยิ่งคุณสามารถดูเห็นได้ว่าโค้ดกำลังสร้าง 1,500 ลำแสงต่อวินาทีในทิศทางที่สุ่ม

  2. เพื่อยืนยันว่าส่วนของโค้ดนี้สาเหตุให้เกิดความล่าช้าในการเรนเดอร์รอบด้วย debug.profilebegin() และ debug.profileend() :


    local function onStepped()
    debug.profilebegin("Raycast Spam")
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    debug.profileend()
    end

ยืนยันและแก้ไขปัญหา

  1. เริ่มทดสอบประสบการณ์ และเปิด MicroProfiler อีกครั้ง

  2. หมายเหตุว่าตอนนี้ MicroProfiler จะแสดงฉลากที่ป้อนแล้ว ซึ่งหมายถึงว่าฟังก์ชันนี้เป็นสาเหตุโดยตรง

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. หยุดการทดสอบเล่น

  4. ลบหรือความคิดเห็นออกจากฟังก์ชัน onStepped() และการเชื่อมต่อ RunService.Stepped:Connect(onStepped)

  5. เริ่มทดสอบประสบการณ์อีกครั้งและตรวจสอบสรุปสถิติการดีบั๊กอีกครั้ง

    Debug stats summary showing 60 FPS.

    สังเกตการปรับปรุงที่มากขึ้นในอัตราเฟรมและเวลาดรอปตามแกน MicroProfiler