본문 바로가기

분류 전체보기53

[WWDC18] iOS memory deep dive - 1 메모리 사용량을 왜 줄일까 더 나은 사용자 경험 더 빠른 앱 실행 시스템 성능 향상 앱이 메모리에 더 오래 유지된다 (이건 뭘까) etc Memory pages 힙에 여러개의 객체들을 담을 수 있다 Page Type Clean: 값이 아무것도 안쓰여있는 상태 Dirty: 값이 하나라도 쓰여있는 상태 pages 수 * page 사이즈 = 앱의 메모리 사용량(memory in use) Memory mapped files read-only 파일은 항상 clean pages Clean 페이징할 수 있는 데이터 memory-mapped file 이미지, data Blob, 학습 모델, 프레임워크 등 모든 프레임워크에는 DATA CONST섹션이 있다. method swizzling(????)같은 런타임 장난을 치면.. 2023. 3. 27.
[WWDC21] Use async/await with URLSession + 적용 시작 swift concurrency관련된 wwdc를 이어서 보는중입니다. 앞선 async/await 개념에 관한 글은 조금 정리가 덜 된 것 같아서 그 다음편으로 이어지는 해당 세션에 대한 글부터 먼저 올리고자합니다. 정리 마지막에는 실제 코드를 한번 리팩토링하는 경험까지 가져보았습니다. 예제 코드 (completion handler) 얼핏봤을 때 문제가 없어보이지만 이제부터 이 코드의 문제점 3가지에 대해서 앞으로 살펴볼 것입니다. Control Flow control flow를 먼저 살펴보자 우리는 data task를 만들고 task를 resume시킨다 task가 끝나면 completion handler로 들어와서, response를 확인하고 이미지를 만든다. control flow가 이렇게 앞뒤로.. 2023. 3. 23.
[Swift]비동기(Async) ≠ 동시성(Concurrency) feat. 병렬성(Parallel) 비동기(async) ≠ 동시성(concurrency)다시 한번 강조 !!비동기(async)와 동시성(concurrency)은 다르단다..뭐지?? 단어가 다른건 알겠는데 거기서 거기 아닌가..? 전 처음 들었을 때 무슨 말장난인줄 알았습니다.. 비동기와 동시성 이름만 두고보면 정말 뭐가 다른지 너무 헷갈려서 정리를 한번 하고가고자 합니다. 저와 같았던 분들도 이 글을 통해서 어느정도 정리가 되셨으면 하네요 간단히 말하면 비동기는 작업 하나에 대한 처리 방법이고, 동시성은 여러 작업들에 대한 처리 방법입니다.비동기는 작업을 Dispatch Queue에 보낸 후에 바로 신경을 끄고 다음 일을 하는 것을 말하고 동시성은 Queue에 있는 작업들을 여러개의 스레드에서 처리하는 것을 말합니다. 이렇게 끝내면 아쉬우.. 2023. 3. 16.
[iOS] 메모리 뜯어보기 (힙할당 줄이기 및 누수 해결하기) WWDC의 메모리 디버깅을 보고 문득 호기심이 생겨서 프로젝트에서 구현했던 메인홈에서의 메모리가 궁금했습니다. 궁금했던 이유는 거기에 Airbnb에서 만든 라이브러리인 lottie-ios의 라이브러리의 기능 AnimationView를 이용한 무한재생 로티가 있고(얘가 얼마나 메모리를 잡아먹을지), 여러가지 정보가 종합해서 보여지는 메인홈이였기에 한번 메모리를 Instruments로 찍어보고 싶었습니다. 그리고 내가 직접 구현한 화면이니까 그냥 궁금했던 점이 컸습니다ㅎ 한번 살펴볼까요??🚀🚀🚀 어라?? 근데 이게 뭐지🤔 4분 2초간 profile 아래 칸에 첫번째, 두번째줄을 보시면 빨간색 overhead가 잔뜩 표시되고, 힙 할당이 로티가 반복재생되는 순간을 기점으로 계속 증가하고 있었습니다 위의 사진은.. 2023. 3. 11.