ประสิทธิภาพอีมูเลเตอร์แก้ปัญหา6 นาที

อีมูเลเตอร์ Android บน Mac: วัดเฟรมต่อวินาทีอย่างไรไม่ให้หลงตัวเลข

อัปเดตเมื่อ · ทีมงาน MACOS EMULATOR

อีมูเลเตอร์ Android ของคุณได้กี่เฟรมต่อวินาที? นี่คือคำถามแรกเมื่อเกมสะดุดบน Mac และแทบไม่เคยเป็นคำถามที่ถูก ตัวเลขตัวเดียวไม่ได้บอกว่าเกมกระตุกหรือไม่ และตัวติดตามกิจกรรมของ macOS ก็ไม่ได้นับเฟรมเลย นี่คือวิธีวัดจริงใน MACOS EMULATOR และสิ่งที่คุณตรวจเองได้

ตัวเลขเฟรมต่อวินาทีไม่ได้บอกว่าเกมกระตุกหรือไม่

ค่าเฉลี่ย 24 เฟรมต่อวินาทีอาจหมายถึง 24 เฟรมที่มาสม่ำเสมอ ซึ่งเล่นได้สบาย หรือการสลับไปมาระหว่าง 30 กับ 15 ซึ่งเล่นไม่ได้เลย ในผลวัดครั้งหนึ่งของเรา 44% ของเฟรมมาห่างกัน 33 มิลลิวินาที และ 34% ห่างกันเกิน 46 มิลลิวินาที: ค่าเฉลี่ยไม่ได้บอกทั้งสองอย่าง

สิ่งที่สำคัญคือสัดส่วนของเฟรมที่มาตรงเวลา และช่วงห่างที่แย่ที่สุด วัดบน M1 แรม 8 GB ที่ 30 Hz: เฟรมมาตรงเวลา 100% และช่วงห่างที่แย่ที่สุดคือ 38 มิลลิวินาที เฟรมเรตเป้าหมายคือค่าที่ต่ำกว่าระหว่างตัวจำกัดสองตัว: ของอีมูเลเตอร์ คือ 30 หรือ 60 Hz บนการ์ด “RENDER” ของลอนเชอร์ และตัวจำกัดเฟรมของเกม ถ้าเกมมีให้ตั้ง

รายงานประสิทธิภาพ: หกวินาที โดยไม่ต้องออกจากเกม

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

  1. 1เริ่มเกมแล้วเล่นไปไม่กี่นาทีก่อน: รายงานตอนอยู่ในเมนูไม่ได้บอกอะไรเกี่ยวกับสิ่งที่รบกวนคุณ
  2. 2คลิกปุ่ม Performance (ไอคอนรูปมาตรวัด) บนแถบเครื่องมือ: มุมซ้ายบนเมื่อใช้ “Screen fit” และด้านขวาเมื่อเล่นแบบหน้าต่าง
  3. 3เล่นต่อไป เมื่อครบหกวินาที ปุ่มจะกลายเป็นเครื่องหมายถูกสีเขียว: รายงานถูกคัดลอกแล้ว
  4. 4ในพื้นที่ลูกค้าของคุณ คลิก “ส่งรายงาน” แล้ววางรายงานลงในช่อง “รายงานประสิทธิภาพ”: รายงานจะส่งไปเป็นไฟล์ .txt แนบ

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

รายงานที่คัดลอกไปถูกเข้ารหัสไว้: คุณอ่านเองไม่ได้ ฝ่ายสนับสนุนเป็นผู้เปิดอ่าน ในนั้นมีจำนวนเฟรมและความสม่ำเสมอ หน่วยความจำว่างและ swap ของ Mac สถานะความร้อน โหมดพลังงานต่ำ และแอปที่ทำให้ Mac ทำงานหนักที่สุด จากนั้นทำอีกสองรายงานในช่วงที่เกมหนักที่สุด ในฉากเดียวกันถ้าทำได้: ช่วงนั้นแหละที่อาการกระตุกจะเห็นได้ชัด

เทียบผลวัดสองครั้งโดยไม่หลอกตัวเอง

บนเครื่องเดียวกันและในสภาพเดียวกัน ผลวัดห้าครั้งติดกันได้ตั้งแต่ 20.0 ถึง 28.6 เฟรมต่อวินาที การเทียบผลวัดครั้งต่อครั้งจึงพิสูจน์อะไรไม่ได้: ถ้าส่วนต่างระหว่างการตั้งค่าสองแบบน้อยกว่าช่วงนี้ ก็ไม่มีผลอะไรให้ต้องอธิบาย

  • ฉากเดียวกัน: สองฉากใช้แรงไม่เท่ากัน ตัวเลขจึงเทียบกันไม่ได้
  • ช่วงเวลาเดียวกันของเซสชัน: ผลวัด 15 เฟรมต่อวินาที สามนาทีหลังอุปกรณ์เริ่มทำงาน ไม่เกิดซ้ำที่นาทีที่สามสิบสาม
  • เปลี่ยนทีละอย่าง: รายงานหนึ่งครั้งโดยไม่แตะการตั้งค่า เปลี่ยนหนึ่งอย่าง แล้วทำรายงานครั้งที่สอง
  • วัดหลายครั้งในแต่ละฝั่ง แล้วเทียบกันด้วยค่ามัธยฐาน
  • Mac ที่ว่าง: เมื่อภาระของเครื่องเกินจำนวนคอร์ รายงานจะระบุเองว่าผลวัดนั้นเทียบกับครั้งอื่นไม่ได้

การเปลี่ยนหน่วยความจำหรือเฟรมเรตจะมีผลเมื่อเริ่มอีมูเลเตอร์ครั้งถัดไปเท่านั้น: ให้รีสตาร์ตอีมูเลเตอร์ก่อนวัดครั้งที่สอง

สิ่งที่ตัวติดตามกิจกรรมบอก และสิ่งที่ไม่ได้บอก

ตัวติดตามกิจกรรมไม่ได้นับเฟรมต่อวินาทีเลย แต่แสดงว่าอะไรถ่วง Mac ของคุณระหว่างเล่น

  • แท็บหน่วยความจำ (Memory): ถ้าแรงกดดันหน่วยความจำ (Memory Pressure) เป็นสีเหลืองหรือสีแดง แปลว่า Mac หน่วยความจำไม่พอ เรียงรายการตามหน่วยความจำ แล้วปิดสิ่งที่ใช้ไปหลายกิกะไบต์
  • แท็บ CPU: เมื่อเรียงตาม % CPU จะเห็นว่าอะไรทำให้ Mac ทำงานหนัก การแชร์หน้าจอใน Discord ตัวเดียวกินโปรเซสเซอร์ไปเกือบครึ่ง

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

กลับกันก็เกิดขึ้นได้: เมื่อ macOS บีบอัดหน่วยความจำแทนการเขียนลงดิสก์ swap น้อยไม่ได้แปลว่าหน่วยความจำพอ การบีบอัดนี่แหละที่เป็นกับดักของผู้เล่นคนหนึ่งบน Mac mini M4 แรม 16 GB ซึ่งหน่วยความจำที่ให้อีมูเลเตอร์ไปเหลืออยู่ในแรมจริง ๆ เพียง 7%: คู่มืออีมูเลเตอร์บน Mac mini เล่าเรื่องที่เหลือ

สิ่งที่รายงานแสดงบ่อยที่สุด

ชิปกราฟิกส่วนใหญ่ทำงานไม่ถึงครึ่งของที่ทำได้ แม้ในตอนที่เกมกระตุก: สิ่งที่ไม่ไหวคือหน่วยความจำของ Mac ตัวอย่างบน Mac 8 GB: หน่วยความจำว่างเหลือ 1.5 GB และถูกย้ายไปไว้บนดิสก์แล้ว 4.2 GB ในขณะที่เอนจินของเกมยังรักษาเฟรมเรตไว้ได้ครบ 100% รองลงมาคือโหมดพลังงานต่ำของ macOS และการให้หน่วยความจำอีมูเลเตอร์มากเกินไป: การตั้งค่าเมื่ออีมูเลเตอร์ Android ช้า อธิบายทั้งสองเรื่อง พร้อมผลวัดจริง

สิ่งที่ส่งไปพร้อมกับรายงาน

  • ล็อกของลอนเชอร์ (Settings แล้ว Logs แล้ว Copy) ในช่องที่สองของปุ่มเดียวกัน
  • สเปกเครื่องของคุณ: รุ่น ชิป หน่วยความจำ และเวอร์ชัน macOS ดูได้จากเมนู Apple แล้วเลือกเกี่ยวกับ Mac เครื่องนี้ (About This Mac)
  • เล่นหนึ่งตาที่ 30 Hz อีกตาที่ 60 Hz และบอกว่าแบบไหนลื่นกว่าบนเครื่องของคุณ

คำถามที่พบบ่อย

จะดู FPS ของอีมูเลเตอร์ Android บน Mac ได้อย่างไร

ปุ่ม Performance บนแถบเครื่องมือวัดการเล่นหกวินาทีโดยไม่ขัดจังหวะเกม รายงานที่คัดลอกไปถูกเข้ารหัสไว้: ส่งผ่าน “ส่งรายงาน” ในพื้นที่ลูกค้าของคุณ แล้วฝ่ายสนับสนุนจะอ่านให้คุณ

ทำไม 30 เฟรมต่อวินาทีถึงดูลื่นกว่า 60 ได้

เพราะบนหน้าจอ สิ่งที่ตารับรู้คือความสม่ำเสมอ สามสิบเฟรมที่มาตรงเวลาทั้งหมด อย่าง 100% ที่วัดบน M1 แรม 8 GB ที่ 30 Hz ดีกว่าหกสิบเฟรมที่บางส่วนมาช้า

ตัวติดตามกิจกรรมวัด FPS ของอีมูเลเตอร์ได้ไหม

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

ควรทำรายงานประสิทธิภาพตอนไหน

ระหว่างเล่น หลังเล่นไปไม่กี่นาที จากแถบเครื่องมือ: ห้ามทำตอนอยู่ในเมนูหรือจาก Settings จากนั้นทำอีกสองรายงานในช่วงที่หนักที่สุด ในฉากเดียวกัน

วัดสองครั้งได้ตัวเลขไม่เท่ากัน ปกติไหม

ปกติ ในสภาพเดียวกัน ผลวัดห้าครั้งบนเครื่องเดียวกันได้ตั้งแต่ 20.0 ถึง 28.6 เฟรมต่อวินาที ให้เทียบฉากเดียวกัน ในช่วงเวลาเดียวกันของเซสชัน และวัดหลายครั้งในแต่ละฝั่ง