닷넷은 지가 가비지 컬렉션한다고 해놓고
제대로 안함.
제대로 안할거면 수동으로 쉽게 지우는 기능이라도 넣어야지,
매번 뭘 통째로 가비지 컬렉션시키는거 밖에 없음.
c/c++은 그 점에서 좋지.
원할때 바로 지워버릴 수 있으니까.
불편해도 예측하기 어려운건 더 좆같음.
근데 그 "불편"이 문제지.
한꺼번에 동적할당하고 한꺼번에 지우는 기능 같은게 없음.
(애초에 그래서 가비지 컬렉션 개념이 나온거지만....)
매번 뭘 할당하려고 하면 한두줄로 끝나는게 아니라 심하면 10줄,20줄도 더 넘어가.
그거 때문에 빡쳐서 free/delete 를 깜빡하는 일이 많아서 가비지 컬렉션개념이 나온거임.
동적할당 속에 동적할당을 여러번 중첩해야할 일도 생기는데,
이럴때 정말 개 빡침.
그냥 맨 위에꺼 하나만 delete 해주면 알아서 하위것도 재귀적으로 delete해줘도 될거 같은데 그런 기능은 안넣어놓음.
직접 다 해줘야됨. 시불.
지금 하다가 괜히 빡쳐서 글 싸봄. ㅠㅠ
그러게요 자바가 더 낫지않나요?
글써놓은거 보니 C# 도 동적할당 충분히 해제할 수 있는걸 충분히 아는것 같아서 더이상 말은 안하겠고, 가비지컬렉터 특성 상 쩔수없는 결과임. 자바의 가비지 컬렉터도 마찬가지지. 그리고 가비지컬렉터의 모드나 종류 할당순서 할당해제시점을 잘 이해한다면 별 문제없음. 겁나 빡센 다중접속 서버프로그램이나 고연산 프로그램 만드는거 아닌 이상 역량 문제임. (물론 저런 프로그램들은 C#을 쓴다해도 코어는 C++ 사용함)
C# 서버인 경우 서버 가비지를 튜닝하던가 메모리 풀을 사용해서 가비지 콜렉터 호출되는 빈도를 줄이는 방법도 있지 뺑기 치는 방법도 다양함 굳이 core 단을 C++로 할 필요도 없고
RAII:? - 164260의 휘발성 계정
그리고 new 를 1000번쓰면 delete 1000번 해줘야된다는게 불합리하지요?
자동으로 delete 해주는거 있는데;;