TArray<>만 배열인줄 알았는데....
지피티한테 메모리 파편화 피하는 방법 알려달라길래
FVector var[]; 이렇게 알려줌.
저게 배열인줄도 몰라서 제미니한테 물어보니 똑같이 알려줌.
그제서야 지피티가 헛소리 하는게 아니라 내 지식 밖의 영역이라는걸 깨달음.
이게 도대체 뭐다냐 하고 물어보니 고정 배열이라네.
갑자기 떠오르는 과거의 기억.
혹시나 해서 옛날에 들었던 인강 보니까 처음부터 고정배열로 알려줬네....
그시절 나는 봐도 몰랐구나....
기초는 중요하다...
- dc official App
TArray는 C++ STL 벡터처럼 동작하는 언리얼 커스텀 컨테이너인데 벡터는 추가할때 카파시티 넘어가는 순간 새로운 힙에 메모리 알로케이트해서 배열 복사한다음에 새로운 배열을 만드는거임; 근데 언어의 기본적인 배열의 개념을 모르는데 메모리 파편화까지 고려하는건 좀 뜬구름 잡는소리같다고 생각하는데 기초부터 해야될듯?
이거 맛다
reserve로 크기 예약해 두고, 초과하면 그냥 생성 자체를 안하면 될거라 생각했는데. tarray로 만드는거랑 고정배열이랑 메모리 접근 속도 차이가 난다네? 당연히 난 처음듣는 소리고. 지피티한테 물어보고 제미니한테 2차 검증해도 똑같은 소리함. 일단 신뢰도는 90퍼로 봐도 될것 같긴 한데. 더 알면 설명좀 해주셈. 난 인공지능 친구들 100퍼센트 신뢰 안해서. 그리고 이 부분은 최소한 인강에선 말 안해주는 영역 같음. - dc App
@흑_두루미 TArray랑 일반 배열이랑 똑같이 TArray도 [] 연산자 오버로딩된거라 해당 메모리에서 얼만큼 떨어져있는지 알기때문에 인덱스 접근속도는 똑같음 무슨 접근을 말하는지 잘 이해가안댐 뭐 메모리파편화와 자료구조 같은 내용으로 추론을 해서 답변하자면 너가 말하는 접근 속도가 느리고 메모리가 떨어져있는 있는애들은 일반 배열, TArray말고 Linked List에 해당되는 이야기임
@ㅇㅇ(121.136) 고정배열로 상수크기 잡고 선언하면 접근속도 차이나지. 애초에 스택메모리에 잡히는데
@Indie1(125.244) (함수 내에서 선언했다면)
@Indie1(125.244) 뭐 SIMD 연산을 하는것도 아니고 애초에 캐시에 TArray든 일반 배열이든 올라오면 접근속도가 똑같죠 빠른건 할당과 해제 비용일 뿐이지 접근 속도는 같다고 생각하는데 뭐가 더 빠르다는임?
@ㅇㅇ(121.136) 아 순회 얘기면 똑같지
@ㅇㅇ(121.136) 걍 기존 구조 냅두는걸로 함. 인공지능 이놈들 호들갑 떠는 거였음. - dc App
@흑_두루미 홧팅
배열 종류까지 최적화 해야한다면 나는 그 프로젝트 기획 자체가 잘못되었다고 말하고 싶다
인공지능 호들갑에 낚여서 펄떡거렸을뿐...ㅡㅜ - dc App
c/c++ 기초에서 배열이랑 매모리 동적할당(malloc등) 부터 다시 찾아보도록
TInlineAllocator 로 해결이 안되는 문제면 구현 난이도가 많이 어렵겠는걸