728x90

분류 전체보기 141

명령어 집합구조, CISC & RISC

명령어 집합 - CPU가 이해할 수 있는 명령어들의 모음을 말한다. - 예를들어 인텔의 CPU는 일반적으로 x86(x86-64) 명령어 집합을, 애플의 CPU는 일반적으로 ARM 명령어 집합을 따른다. - 명령어 집합은 CPU가 이해할 수 있는 명령어들의 모음을 말하므로, 결국 인텔의 CPU에서 만든 실행파일을 맥으로 옮겨서 실행을 하려고 하면 실행이 안된다. -> ISA(명령어 집합)은 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속. CISC & RISC 1. CISC(Complex Instruction Set Computer) - 복잡한 명령어 집합을 활용하는 컴퓨터 - x86 / x86-64 1) 장점 - 복잡하고 다양한 명령어 활용이 가능하다. - 명령어의 형태와 크기가 다..

Overloading과 Overriding / method Signature 알아보기

Overriding의 핵심은 상속이다. - 부모 클래스의 속성과 기능을 그대로 사용하고 상속 받은 자식클래스에서 overriding한 해당 기능만 다시 수정하여 사용할 수 있게 하는것이다. 부모클래스에서 virtual 키워드를 사용한 함수에 대해서 재정의가 가능하다. Overloading의 핵심은 Method Signature이다. 나는 기억속에 return값 또한 overloading에 영향을 주는 것으로 기억하고있었다. 하지만 중요한것은 method Signature였다. Method Signature는 메소드 명과 그 함수의 매개변수를 뜻하는데 Method Signature가 다르지 않다면 같은 함수로 인식하게 되어 return값이 다르더라도 빨간 밑줄이 생기게 된다. 따라서 다형성을 위해 Over..

코루틴 조금 더 자세한 내용

이전글은 여기서 참조하시기 바랍니다. https://kyungtaek.tistory.com/90 코루틴 정의 및 LifeCycle에서의 순서 코루틴 IEnumerator 반환 타입과 바디 어딘가에 포함된 yield 반환문으로 선언하는 메소드이다. yield return null 라인은 실행이 일시 정지되고 다음 프레임 에서 다시 시작되는 지점이다. 코루틴을 실행 kyungtaek.tistory.com 코루틴 분석 코루틴은 다른 스크립트 코드와 다르게 실행된다고 합니다. 대부분의 Unity 스크립트 코드는 단일 위치의 성능 트레이스 내, 특정 콜백 호출 아래에 나타나지만 반면, 코루틴의 CPU코드는 항상 트레이스의 두 곳에서 나타난다고 합니다. * 두 곳에서 나타난다는 부분은 아직 이해하지 못했습니다. 코..

코루틴 정의 및 LifeCycle에서의 순서

코루틴 IEnumerator 반환 타입과 바디 어딘가에 포함된 yield 반환문으로 선언하는 메소드이다. yield return null 라인은 실행이 일시 정지되고 다음 프레임 에서 다시 시작되는 지점이다. 코루틴을 실행하려면 StartCoroutine 함수를 사용해야한다. 작업을 다수의 프레임에 분산할 수 있다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드라고 합니다. 시간의 흐름에 따른 이벤트의 시퀀스나 절차상의 애니메이션을 포함하기 위해 메서드 콜을 사용하고자 하는 상황에서 코루틴을 사용합니다. ** 하지만 코루틴은 스레드가 아니란 점을 명심하자. - 코루틴의 동기 작업은 여전히 메인 스레드에서 실행된다. - 메인..

[Unity] FixedUpdate / Update / LateUpdate 차이

유니티 라이프사이틀 업데이트 순서 - 게임로직, 상호작용, 애니메이션, 카메라 포지션의 트랙을 유지할 때 사용 가능한 몇몇 다른 이벤트가 존재합니다. 일반적인 패턴은 Update 함수에서 대부분의 작업을 수행할 수 있지만, FixedUpdate, LateUpdate도 존재합니다. 1. FixedUpdate() 1) 공식문서를 보면 Update는 한 프레임당 한번 호출이 되는데 FixecUpdate는 종종 더 자주 호출된다고 나와있습니다. 2) 프레임 속도가 낮은 경우에는 프레임당 여러번 호출 될 수 있고, 프레임 속도가 높은 경우에는 프레임 사이에 호출되지 않을 수 있습니다. - FixedUpdate는 프레임과 관계없이 일정한 속도로 호출됨을 알 수 있습니다. 3) 유니프 사이클에서 Physics의 범주..

유니티 생명 주기 (Life Cycle) 알아보기

공식 설명이 가장 정확하므로 아래 내용을 참조 바랍니다. https://docs.unity3d.com/kr/2019.4/Manual/ExecutionOrder.html 이벤트 함수의 실행 순서 - Unity 매뉴얼 Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다. docs.unity3d.com 라이프 사이클 큰 흐름 위 공식 Unity 주소에서 읽은 순서를 크게 분류하면 1. Initialization 2. Editor 3. Initialization 4. Physics 5. Input events 6. Game Logic 7. Scene rendering 8. Gizmo ..

명령어 병렬 처리 기법

명령어 파이프라인 - 명령어 인출 (Instruction Fetch) - 명령어 해석 (Instruction Decode) - 명령어 실행 (Execute Instruction) - 결과 저장 (Write Back) * 같은 단계가 겹치지만 않는다면 CPU는 '각 단계를 동시에 실행할 수 있다. 명령어 파이프라이닝은 동시에 여러 개의 명령어를 겹쳐 실행하는 기법이다. 마치 컨베이어 벨트와 비슷하다. 파이프라인 위험 - 명령어 파이프라인이 성능 향상에 실패하는 경우를 말한다. 1. 데이터 위험 2. 제어 위험 3. 구조적 위험 1. 데이터 위험: 명령어간의 의존성 때문에 발생하는 위험이다. - 모든 명령어를 동시에 처리할 수는 없다.(이전 명령어를 끝까지 실행해야만 비로소 실행할 수 있는 경우를 말한다.)..

[백준] 5597번, sort사용법 (c++)

문제 풀이방법 1. 나는 처음 28번까지 입력을 받은 뒤, 정렬을 시킨 후 1번부터 30번까지 하나하나 체크를 해서 배열 위치에 없다면 i를 print하는 방식으로 문제를 해결하려고 했다. 하지만 정렬을 사용하는 방법을 까먹어서 검색하였다. sort함수 - #include 에 포함되어 있다. - 사용방법은 sort(n, n+28) >> 즉 첫번째 값이 시작되는 주소위치, 끝 값의 주소위치를 지정해주면 알아서 오름차순 정렬을 해준다. - sort(begin,end), 범위는 begin > a; n[i] = a; } sort(n,n+28); for(int i = 1; i> a; n[i] = a; } sort(n, n + 28); int j = 0; for(int i = 1; i

CPU의 속도를 빠르게 하는 멀티코어 멀티스레드

CPU의 속도 - 컴퓨터의 부품들은 클럭신호에 마줘 일사불란하게 움직이고 CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어를 실행한다. - 따라서 클럭속도가 빠르다면 명령어 처리속도가 빠르다. - 클럭속도 : HZ(헤르츠) 단위 - 1초에 클럭이 반복되는 횟수를 뜻하며 1초에 100번 반복되면 100Hz이다. - CPU는 클럭신호를 빠르게할때는 빠르게, 느리게 할땐 느리게 유동적인 동작이 가능하다. - 필요 이상으로 클럭을 높이면 발열이 심해지기 때문에 꼭 클럭신호를 빠르게한다고 해서 반드시 빨라지는것만은 아니다. 클럭속도를 늘리는 방법 이외에 CPU의 속도를 빠르게 하기 위한 방법 1. 코어 수를 늘리는 방법 (멀티 코어) 2. 쓰레드 수를 늘리는 방법 (멀티 쓰레드) 코어 / 멀티코어 - 오늘날..

728x90