메모리·ARC
루프 안 autorelease 누적
데이터 5,000건 이하에서는 잘 돌던 for 루프가 그 이상에서는 메모리 경고 후 크래시합니다. 루프 안에서는 문자열을 잘라 붙이고 String(format:)·NSData 변환을 반복합니다. 힌트는 'autorelease'입니다. 원인을 설명하세요.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
데이터 5,000건 이하에서는 잘 돌던 for 루프가 그 이상에서는 메모리 경고 후 크래시합니다. 루프 안에서는 문자열을 잘라 붙이고 String(format:)·NSData 변환을 반복합니다. 힌트는 'autorelease'입니다. 원인을 설명하세요.
루프에서 생성되는 Foundation 임시 객체가 autorelease 풀에 쌓여 현재 RunLoop 턴이 끝날 때까지 풀에 머물러 피크 메모리가 건수에 비례해 커진다. 순수 Swift 값은 스코프 끝에서 바로 사라지지만 ObjC 브리징을 거치는 값은 풀에 들어간다.
메모리·ARC객관식기초
다음 코드에서 메모리가 순간적으로 치솟아 종료되는 문제가 있습니다. 가장 적절한 수정은? …
#autoreleasepool #peak-memory
메모리·ARC주관식기초
ARC 이전 Objective-C에서는 retain/release/autorelease를 직접 호출했습니다. 각각 무엇이었고 ARC가 무엇을 바꿨나요?
#autoreleasepool
동시성주관식입문
UIKit 화면에서 네트워크 응답 콜백에 label.text = result를 했더니 가끔 화면이 늦게 바뀌거나 아예 안 바뀝니다. 원인이 무엇인가요?
#runloop
동시성주관식기초
스크롤하는 동안 화면의 카운트다운 Timer가 멈췄다가 스크롤이 끝나면 한꺼번에 따라잡습니다. RunLoop 관점에서 원인이 무엇인가요?
#runloop