โปรไฟลเลอร์สคริปต์

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

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

บันทึกโปรไฟลิ่งเซสชัน

ก่อนที่จะบันทึกต้องเลือกสภาพแวดล้อมในการบันทึกจาก:

  • ลูกค้า (ค่าเริ่มต้น) — บันทึกสคริปต์ด้านลูกค้ารวมถึง LocalScripts และ Scripts ด้วย 0> Class.BaseScript.RunContext|RunContext0> ตั้งค่าไว้ที่ <
  • เซิร์ฟเวอร์ — บันทึกสคริปต์ด้านเซิร์ฟเวอร์รวมถึง Scripts ด้วย RunContext ตั้งค่าไว้ที่ 0> Enum.RunContext.

คุณยังสามารถตั้งค่าตัวเลือกการบันทึกต่อไปนี้:

พฤติกรรมตั้งค่าเริ่มต้นคำอธิบาย
ความถี่1000 ครั้งต่อวินาที (1 KHz)10,000 ครั้งต่อวินาที (10 KHz)1 กิโหวตความถี่ 10 KHz มีความนิ่งสูงขึ้นเนื่องจากสคริปต์โปรไฟล์อาจไม่สามารถเก็บโทรกเทิร์น API ที่ดำเนินการบ่อยกว่าความถี่ที่คุณเลือก แต่มันยังมีค่าใช้จ่ายในการประมวลผลสูงขึ้น
ระยะเวลาของเซสชัน1 นาที5 นาที10 นาทีคู่มือคู่มือตัวเลือกคู่มือต้องการให้คุณหยุดบันทึกโดยใช้มือ
พฤติกรรมการโหวตเปิด/ปิดปิดพฤติกรรมนี้จะรวบรวมและรีเฟรชข้อมูลโปรไฟล์ในแต่ละวินาทีในระหว่างเซสชันโปรไฟล์

เพื่อบันทึกเซสชันใหม่:

  1. ขยายรายการดรอปดาวน์เพื่อเลือก ScriptProfiler

    Dropdown menu of all Developer Console tools with the ScriptProfiler option highlighted for selection.
  2. ขยายรายการลูกล้างของลูกค้า-เซิร์ฟเวอร์เพื่อเลือก ลูกค้า หรือ เซิร์ฟเวอร์

    Dropdown menu with Client and Server options for selection.
  3. (อpcional) ตรวจสอบกล่องเรือ ไลฟ์ เพื่อเปิดใช้งานพฤติกรรมการโหวดแบบไลฟ์

  4. (อpcional) เลือก Freq และ Time เพื่อเลือกความถี่การบันทึกและเวลาเซสชันหากคุณไม่ต้องการใช้ค่าเริ่มต้น

  5. คลิก เริ่ม เพื่อเริ่มเซสชันสแตตัสของโปรไฟล์ หากคุณตั้งค่าระยะเวลาให้เวลาเริ่มต้นของสคริปต์โปรไฟล์จะปรากฏในระเบียบานของเซสชัน Thai:คลิก เริ่ม เพื่อเริ่มเซสชันสแตตัสของโปรไฟล์ หากคุณตั

  6. คลิก หยุด หรือรอจนกว่าจะเสร็จสิ้นการบันทึกเพื่อแสดงผลลัพธ์การวิเคราะห์

การอ่านข้อมูลโปรไฟลิ่ง

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

  • คอลล์กราฟ (ค่าเริ่มต้น): จัดหมวดหมู่และแสดงระเบียบายการเรียกใช้งานในรูปแบบต้นไม้ตามภารกิจเฟรม วิวนี้จะแส Example callgraph view of a profiling session.
  • ฟังก์ชัน : รายการฟังก์ชันทั้งหมดโดยไม่จัดหมวดหมู่ตามภารกิจ Example functions view of a profiling session.

คุณยังสามารถเลือกจากตัวเลือกการแสดงต่อไปนี้เพื่อปรับแต่งความต้องการในการดีบั๊กของคุณ:

ชื่อตั้งค่าเริ่มต้นคำอธิบาย
ยูนิตอืม (วินาที) ร้อยละ (%)นางสาวบ่งบอกเวลาที่ใช้ในแต่ละการโทร API ใน milliseconds หรือ percentages ของเซสชันบันทึกทั้งหมด
เฉลี่ยOff1-วินาที1-นาที10-นาทีปิดคํานวณเวลาเฉลี่ยที่ใช้ในแต่ละการโทร API โดยมีค่าที่เลือก หากคุณเลือกตัวเลือกที่ยาวนานกว่าระยะเวลาเซสชัน สกริปต์ profiler จะคํานวณระยะเวลาเซสชันเพื่อคํานวณระ

การส่งออกข้อมูลการวิเคราะห์

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

  1. ในหน้าต่าง Script Profiler คลิก ส่งออก 2. ในหน้าต่างการส่งออก เลือกเซสชันโปรไฟล์ที่คุณต้องการส่งออก เปลี่ยนชื่อไฟล์เริ่มต้นหากคุณต้องการตั้งชื่อให้กับชื่อที่กำหนดเอง

  2. คลิก ส่งออก เพื่อบันทึกไฟล์ JSON

    Example export window.

ไฟล์ JSON ที่ส่งออกรวมถึงสาขาต่อไปนี้:

  • เวอร์ชัน : เลขเวอร์ชัน
  • SessionStartTime : เวลาที่แม่นยำในมิลลิวินาทีที่บันทึกเวลาเริ่มต้นของเซสชัน
  • SessionEndTime : เวลาที่ทำเครื่องหมายในมิลลิวินาทีที่บันทึกเวลาที่สิ้นสุดของเซสชัน
  • หมวดหมู่ : รายการหมาดหมู่งานเค้าโครงที่บันทึกในเซสชันสรุป แต่ละรายการรวมถึง:
    • ชื่อ : ชื่อแต่ละหมวดหมู่ของภารกิจ
    • รหัสอินทราแล็กซ์ของโน้ตดอลลาร์สหรัฐ (หน่วยความจําเฉพาะของโน้ต) เป็นตัวเลข 1 ตัวในค่า Nodes ของ 123 โดยการดึงค่
  • โน้ดส์ : รายการโน้ดที่บันทึกในเซสชันสแน็ปช็อต แต่ละรายการรวมถึง:
    • ระยะเวลาทั้งหมด : จํานวนเวลาที่ต้องใช้ในเวลานานาวินาทีในการประมวลผล
    • FunctionIds : รายการตัวเลขอิденติฟิกเฉพาะของฟังก์ชัน
    • NodeIds : รายการของไอดีโนด
  • ฟังก์ชัน : รายการฟังก์ชันที่บันทึกไว้ในเซสชันโปรไฟลิ่ง
    • ระยะเวลาทั้งหมด : จำนวนเวลาที่ต้องใช้ในการประมวลผลในเวลาของ microseconds
    • ชื่อ : ชื่อของฟังก์ชัน หากมี
    • ที่มา : ที่มาของฟังก์ชัน หากมี
    • เส้น : เลขเส้นของฟังก์ชัน หากมี
    • ธง : ส่วนตรวจสอบขนาดเล็กที่แสดงสภาพแวดล้อมการประมวลผลใด ๆ ได้ ขณะนี้สามารถมีค่าต่อไปนี้ได้:
      • 0 : บิทที่ 0 เป็นตัวแทนของ IsNative สำหรับการประมวลผลภายใต้โค้ดเริ่มต้น
      • 1 : บิทที่ 1 เป็นตัวแทนของ IsPlugin สำหรับการประมวลผลในเชิงปลั๊กอิน
ตัวอย่างข้อมูลการส่งออกโปรไฟล์

{
"Version":2,
"SessionStartTime":1704850750514,
"SessionEndTime":1704850751198,
"Categories":
[
{"Name":"Parallel Luau","NodeId":4},
{"Name":"Heartbeat","NodeId":1}
],
"Nodes":
[
{"TotalDuration":2530,"FunctionIds":[1],"NodeIds":[2]},
{"TotalDuration":2530,"FunctionIds":[2,5],"NodeIds":[3,7]},
{"TotalDuration":1267},
{"TotalDuration":7746,"FunctionIds":[3],"NodeIds":[5]},
{"TotalDuration":7746,"FunctionIds":[4],"NodeIds":[6]},
{"TotalDuration":7746},
{"TotalDuration":1263,"FunctionIds":[6],"NodeIds":[8]},
{"TotalDuration":1263,"FunctionIds":[7],"NodeIds":[9]},
{"TotalDuration":1263,"FunctionIds":[8],"NodeIds":[10]},
{"TotalDuration":1263}
],
"Functions":
[
{"Name":"main","TotalDuration":2530},
{"Source":"builtin_ManageCollaborators.rbxm.ManageCollaborators.Packages._Index.roblox_rodux-3.0.0.rodux.Store","Line":81,"TotalDuration":1267},
{"Name":"Script","TotalDuration":7746},
{"Source":"Workspace.Actor.Script","Line":1,"TotalDuration":7746},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Line":221,"TotalDuration":1263},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Name":"_update","Line":236,"TotalDuration":1263},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Name":"_getRange","Line":277,"TotalDuration":1263},
{"Source":"[C]","Name":"ScrollingFrame.CanvasPosition","TotalDuration":1263}
]
}