iPhone Simulator ก็เริ่มทำงานช้ามาก


319

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

ฉันลองรีสตาร์ทเครื่องมือจำลอง (หลายครั้ง) และนำแอปออกและทำการสร้างใหม่อย่างสมบูรณ์ แต่ไม่มีโชค ฉันตรวจสอบการใช้งาน cpu ผ่านจอมอนิเตอร์ในขณะที่ตัวจำลองกำลังทำงานอยู่และฉันใช้เพียงประมาณ 30% ของ cpu ของฉันและ 40% ของหน่วยความจำ

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


9
คุณกด Shift สามครั้งติดต่อกันหรือไม่?
Rey Gonzales

1
ยากที่จะรู้ว่าถ้าฉันทำสิ่งที่ฉันควรทำอย่างไร นี่เป็นเช่นเดียวกันกับภาพเคลื่อนไหวช้าสลับหรือไม่ ถ้าเป็นเช่นนั้นฉันได้ลองสลับมันหลายครั้งโดยไม่มีโชค
Finglish

กด shift สามครั้งอีกครั้ง ใช่มันเหมือนกัน
Rey Gonzales

96
กด CMD + T เพื่อสลับช้าลง
Dominic

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

คำตอบ:


803

ในเครื่องมือจำลอง iOS ที่แถบด้านบนคลิกที่DebugToggle Slow Animations(หรือSlow Animationsด้วย Xcode 10+) โอกาสที่คุณจะเปิดมันโดยไม่ได้ตั้งใจ


1
ฉันลองสิ่งนี้ แต่ดูเหมือนจะไม่สร้างความแตกต่าง ฉันลองรีสตาร์ทหลังจากสลับ แต่ก็ยังช้ามาก นอกจากนี้ปัญหาความเร็วไม่ได้ จำกัด เฉพาะภาพเคลื่อนไหว
Finglish

@Finglish อย่างน้อยที่สุดสาเหตุที่เป็นไปได้ก็คือทางออก ฉันไม่แน่ใจว่ามีอะไรผิดปกติ คุณมีรุ่นของแหล่งที่มาจากก่อนที่มันจะชะลอตัวลงเพื่อเปรียบเทียบกับแหล่งที่มาตอนนี้? มีอะไรเปลี่ยนแปลงระหว่างตอนที่มันเร็วและตอนนี้?
Metabble

1
ไม่แน่ใจว่าทำไมสิ่งนี้ถึงใช้งานได้ แต่ฉันบันทึกไว้ แต่ฉันได้ทำสำเนาโครงการใหม่และรันโปรแกรมจำลองอีกครั้งและกลับมาเป็นความเร็วเต็ม ฉันไม่แน่ใจว่านี่เป็นเรื่องบังเอิญหรือไม่
Finglish

1
โอ้ว้าวสิ่งนี้น่าจะเกิดขึ้นกับหลาย ๆ คน (รวมถึงฉันด้วย) เนื่องจากการแมปไปที่⌘Tดังนั้นหากคุณพยายามเปิดเบราว์เซอร์หรือแท็บเทอร์มินัลอาจเป็นการสลับภาพเคลื่อนไหวช้า ......
Smitty

1
@Styty นี้เป็นสิ่งที่เกิดขึ้นกับฉันฮ่าฮ่า :)
31419

186

Simple Command+ Tจะแก้ไขปัญหานี้

Command+ TสลับจำลองของSlow Animationsซึ่งสามารถพบได้ภายใต้เมนู Simulator: ->DebugSlow Animations


10
ฉันกดปุ่มชุดนั้นโดยไม่ตั้งใจเมื่อฉันอยู่บน Chrome lol (เปิดแท็บใหม่)
mr5

4
Apple ควรคิดถึงการรวมแป้นพิมพ์อื่น ๆ
sonlexqt

164

ไปที่เมนู Debug ของเครื่องมือจำลองและเลือก "สลับภาพเคลื่อนไหวช้า"

อัปเดต:ใน Xcode 10 เป็นเพียง "ภาพเคลื่อนไหวช้า":

เมนู Simulator Debug


6
ฉันพนันได้เลยว่าทุกคนกำลังดูคำตอบนี้กด cmd + T คิดว่าพวกเขาอยู่ในแอพพลิเคชั่นที่แตกต่างกันและจากนั้นก็เริ่มรับภาพเคลื่อนไหวช้า แอปเปิ้ลควรทำการกดแป้นพิมพ์ cmd + T อีกครั้งเพื่อให้ได้สิ่งที่ลึกลับมากกว่าและใช้กันน้อยกว่า
cs01

57

เลือกเครื่องมือจำลอง

เลือก Debug และยกเลิกการเลือกภาพเคลื่อนไหวช้า
คำสั่งทางลัด + t

นั่นเป็นงานสำหรับฉัน


38

หากตัวเลือก Cmd-T (ภาพเคลื่อนไหวช้า) ไม่ทำงานสำหรับคุณและDebug -> Slow Animationsปิดอยู่ แต่คุณยังคงลองทำภาพเคลื่อนไหวช้าSimulator -> Reset Contents and Settings(หรืออาจเป็นไปได้ว่าHardware -> Erase All Content and Settings ) ที่ทำงานให้ฉันเมื่อไม่มีคำตอบอื่น ๆ ในที่นี่ไม่ ใครมีข้อเสนอแนะว่าทำไม?

การแนบตัวดีบักเกอร์ (ทั้งหมด) อาจทำให้แอนิเมชั่นช้ามาก


1
สิ่งนี้ได้ผลสำหรับฉัน แต่ฉันก็อยากรู้ว่าทำไม ฉันกำลังพัฒนาใน React Native และฉันสงสัยว่าแอปพลิเคชันของฉันเริ่มใช้พื้นที่มากเกินไปด้วย AsyncStorage นั่นเป็นเพียงการเดา
เร่ร่อน

ฉันลองทุกอย่างแล้ว แต่ไม่มีอะไรแก้ไขความเชื่องช้าที่ฉันเห็นฉันกำลังเห็นภาพเคลื่อนไหวที่รวดเร็ว แต่การเคลื่อนไหวช้าเช่นในชุดฉากฉันมีลูกบอลตกและมันไปช้ามากจนคุณสามารถเห็นมันเคลื่อนไหวเหมือน 1 เฟรมต่อวินาทีและเหมือน 10 วินาทีเพื่อกระแทกพื้น
Repardeimaj

สิ่งนี้ไม่สามารถใช้ได้กับ Xcode เวอร์ชันปัจจุบันอีกต่อไป แต่มีHardware -> Erase All Content and Settings...ตัวเลือก
เร่ร่อนที่

1
Hardware -> Erase All Content and Settings...คือตั๋ว
เร่ร่อน

มันไม่ได้ช่วยในกรณีของฉันstackoverflow.com/a/59626207/3826175
mikep

32

การแก้ไขที่เป็นไปได้อื่นสำหรับผู้ใช้ React-Native:

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


29

คุณเผลอกดแอนิเมชั่นช้าในการดีบักเมื่อใช้ตัวจำลอง So Run Simulator -> Debug -> ยกเลิกการเลือก Slow Animation


คุณช่วยอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับโซลูชันที่คุณให้ได้ไหม
abarisone

13

ฉันคิดว่าคุณกด command + T แทน command + R โดยไม่ได้ตั้งใจ


1
คำสั่ง + R เพื่อรีเฟรช ใช้เวลา 20 นาทีในการหาวิธีทำให้แอปของฉันเสียหาย รีสตาร์ท Mac ของฉันทางเลือกสุดท้าย มาที่นี่เรียนรู้สิ่งใหม่และชื่นชมยินดี
ThunderHorse

7

ฉันยังไม่มีตัวแทนที่จะแสดงความคิดเห็น แต่ฉัน upvoted คำตอบบางอย่างที่นี่และต้องการพูดเพิ่มเติม ฉันมีปัญหากับแอนิเมชั่นช้าใน iOS Simulator โดยเฉพาะการหมุนและฉันพบโพสต์นี้ผ่าน Google ที่จริงแล้วอย่างใดอย่างหนึ่ง "ภาพเคลื่อนไหวช้าสลับ" ต้องได้รับการเปิดเพราะสามกะแก้ไขมัน ตอนแรกฉันไม่คิดว่านี่เป็นปัญหาเพราะไม่มีเครื่องหมายถูกติดกับ "Toggle Slow Animations" ปรากฎว่าไม่มีเครื่องหมายถูกหรือสิ่งบ่งชี้ใด ๆ จากเมนูไม่ว่าจะเปิดหรือปิด ดังนั้นเพียงแค่ลองสลับมันและดูว่าการหมุน / การนำทางเร็วขึ้น / ช้าลงหรือไม่

ดังนั้นขอบคุณ!


อัปโหลดแล้วเนื่องจากมีข้อมูลเพิ่มเติมเกี่ยวกับการขาดการตอบกลับด้วยภาพใน Xcode
Paul Waldo

5

เครื่องมือจำลอง -> รีเซ็ตเนื้อหาและการตั้งค่าใช้งานได้สำหรับฉัน ดูเหมือนว่าปัญหาจะปรากฏขึ้นอีกครั้งเมื่อฉันตรวจแก้จุดบกพร่องรหัสพื้นเมืองของฉันจากระยะไกล นอกจากนี้ยังอาจจะทำอย่างไรกับ AsyncStorage เป็นชนเผ่าเร่ร่อนปัญหา


1
การหยุดดีบักระยะไกลเป็นสิ่งที่แก้ไขปัญหาของฉัน ขอบคุณ!
liquidpenguins

1

คุณสามารถลองปิดการดีบักระยะไกล (Cmd-D -> หยุดการดีบัก JS ระยะไกล) ซึ่งมักจะเร่งความเร็วสิ่งต่างๆ


0

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


-1

มันไม่ได้เกี่ยวกับการเคลื่อนไหวช้าเท่านั้น Xcode simulator มีประสิทธิภาพต่ำมากในโลก มันเป็นข้อผิดพลาดของ Apple ฉันได้รายงานผ่านทางFeedback Assistantแล้ว ฉันสร้างการสาธิตโดยใช้รหัสที่แสดงให้เห็นว่าเครื่องจำลองนั้นช้ากว่าอุปกรณ์จริงเครื่องเก่าถึง 200 เท่า ฉันได้พบว่ารหัส JavaScript กับวัตถุวันที่ดำเนินการใน WKWebView เป็นความเจ็บปวดสำหรับจำลอง การเปลี่ยนตัวเลือกในโปรแกรมจำลองไม่ได้ช่วยในกรณีของฉัน ดู jsfiddle https://jsfiddle.net/kjms16cw/ฉันหวังว่า Apple จะแก้ไขได้ในไม่ช้า!

var log = document.getElementById("log");
document.getElementById("button").onclick = function() { run(); };

function run() {
	var d1 = new Date();
	for (var i = 0; i < 1000; i++) {
		var x = new Date();
		x.setMilliseconds(0);
		x.setSeconds(0);
		x.setMinutes(0);
	}
	var d2 = new Date();
	log.innerHTML = ((d2.getTime() - d1.getTime()) / 1000) + " seconds";
}
<h3>Xcode Simulator Extremely Low Performance</h3>
<p>This test runs fast (several tens milliseconds e.g. 30 ms)
in any browser any device any platform including very old iOS device
e.g. iPhone 5C and several years old iPad 2, BUT IN SIMULATOR IT TAKES 6000 ms 
(yes, 6 seconds!). Terrible!</p>
<button id="button">run()</button>
<div id="log"></div>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.