iOS 개발 : 장치에서 메모리 부족 경고를 유발하려면 어떻게해야합니까?
메모리 부족 상태에서 앱 기능을 잘 테스트하고 싶지만 테스트하기가 어렵습니다. 앱이 시뮬레이터가 아닌 기기에서 실행 중일 때 내 뷰에서 didReceiveMemoryWarning 메서드를 트리거하는 메모리 부족 경고를 어떻게 유도 할 수 있습니까? 또는 이러한 가능한 조건에서 앱을 테스트 할 수있는 방법은 무엇입니까?
시뮬레이터를 사용할 수없는 이유는 앱이 Game Center를 사용하고 시뮬레이터에서 초대가 작동하지 않기 때문입니다.
장치에서 테스트하려면 메모리를 해제하지 않고 주기적으로 대량의 메모리를 할당하는 코드를 추가하십시오 (예 : 의도적으로 누출). 이 작업은 별도의 스레드에서 수행하거나 타이머에 대한 응답으로 수행하거나 애플리케이션의 동작을 테스트하고 관찰하는 데 가장 적합한 메커니즘을 사용할 수 있습니다.
이 앱을 쉽게 재사용하거나 여러 애플리케이션으로 테스트하려는 경우 유사한 작업을 수행하고 백그라운드에서 실행되도록 설계된 별도의 앱을 만들 수도 있습니다.
private 메서드를 호출 할 수 있습니다 .
[[UIApplication sharedApplication] performSelector:@selector(_performMemoryWarning)];
디버그에서만 사용하는 것을 잊지 마십시오. 그렇지 않으면 앱이 거부됩니다.
iOS 시뮬레이터의 Simulate Memory Warning
메뉴 항목을 사용하면 메모리 경고를 시뮬레이션 할 수 있습니다.
기기를 사용하여 메뉴 항목을 사용합니다. 기기-> 메모리 경고 시뮬레이션.
Xcode의 앱에서 Instruments를 사용하려면 제품-> 프로필 메뉴 항목을 사용하십시오.
Swift에서 Enzo Tran의 답변 을 다시 작성 했습니다.
UIControl().sendAction(Selector(("_performMemoryWarning")), to: UIApplication.shared, for: nil)
그것을 호출하는 메뉴 명령이 있습니다.
Hardware > Simulate Memory Warning
시뮬레이터에서.
@ChikabuZ를 신속한 3으로 변환했습니다.
UIControl().sendAction(Selector(("_performMemoryWarning")), to: UIApplication.shared, for: nil)
어떤 이유로 든 누군가가 Swift 4에서 이것을 시도한다면 1.2GB의 램을 할당하는 방법이 있습니다.
let d = Data.init(repeating: 100, count: 1200000000)
- 다른 앱에서 경고 알림을 트리거하는 데 유용합니다.
어떤 이유로 든 누군가가 Swift 3에서 이것을 시도한다면 1.2GB의 램을 할당하는 방법이 있습니다.
for i in 0...1200 {
var p: [UnsafeMutableRawPointer] = []
var allocatedMB = 0
p.append(malloc(1048576))
memset(p[allocatedMB], 0, 1048576);
allocatedMB += 1;
}
스위프트 4 :
UIApplication.shared.perform (Selector (( "_ performMemoryWarning")))
이벤트 / 알림에 대한 응답으로 위를 실행할 수 있습니다.
'programing' 카테고리의 다른 글
EJS 템플릿 (JMVC)에서 조건문을 사용할 수 있습니까? (0) | 2020.09.17 |
---|---|
iPhone : 내비게이션 바 제목 설정 (0) | 2020.09.17 |
RSpec 테스트에서 ActiveRecord에 대한 SQL 디버그 로깅을 켜려면 어떻게해야합니까? (0) | 2020.09.17 |
MySQL 데이터베이스가 XAMPP Manager-osx에서 시작되지 않습니다. (0) | 2020.09.17 |
문자열이 html인지 확인 (0) | 2020.09.17 |