|
김시환님 말씀도 맞는 말씀입니다, 하지만 제 의견은 조금 틀립니다.
변수의 크기, 사용시점, 그리고 용도에 따라 메모리의 정적 또는 동적 할당을 해야한다고 봅니다.
변수의 크기가 상황에 따라 변하지 않고 일정한 크기를 유지한다면 메모리를 미리 잡아놔도 문제가 없지만
사용자의 요구에따라 메모리 요구량이 달라진다면 동적할당을 해야하는 것이 맞다고 봅니다.
또한 가끔씩 사용되는 큰 변수를 정적으로 할당할 경우 필요이상의 메모리를 낭비하는 경우가 됩니다.
프로그램이 돌아가는 환경(OS/하드웨어)이 모바일이냐 PC냐 또는 그밖의 다른 환경이냐에 따라
그에맞는 적합한 메모리 관리정책을 세워야 하지 않을까 합니다.
동적할당을 하는 프로그램의 경우엔 초기 프로그램 구동이 빠르지만 메모리를 생성하는 시점에
프로그램 퍼포먼스 딜레이가 불가피합니다. 반면에 정적할당의 경우 동적할당에 비해 구동이 느린반면
필요한 메모리를 모두 할당하고 구동했기때문에 메모리를 생성하는 과정이 필요없고 딜레이도 없게 됩니다.
두가지 할당방법모두 장단점이 있기때문에 할당방법의 장점만을 취하기 위해선 초기 일부분은 정적할당을 하고
필요에 따라 동적할당을 해서 쓰는 방법이 있습니다.
따라서 변수나 다른 객체의 동적/정적할당은 경우에 따라 틀려질 수 있기때문에 프로그래머가 상황에 따라 판단해야 하는 부분이 아닐까 합니다.
김시환 님이 쓰신 글 :
: 뭐 상황에 따라 조금 달라질 수 있겠지만
:
: 변수의 최대 크기를 정확히 알고 있는 상황이라면 아예 메모리를 잡아놓고 작업을 하는 편이 낳을 듯 싶고,
: 그렇지 않고 변수의 최대 크기를 알 수 없는 상황이라면 그때 그때 메모리를 할당해서 사용해야 하지 않을까 생각이 됩니다.
:
: 옛날 도스 시대처럼 메모리를 절대적으로 아껴야 하는 시대도 아니고, 메모리를 그때그때 할당하는것도 사실 제대로 메모리 해제에 신경쓰지 않으면 에러를 내는 상황이 되니까 아예 메모리를 잡아놓고 시작하는 것도 나쁠것 같지는 않네요..
:
: 한수동 님이 쓰신 글 :
: : 죄송합니다 질문이라기 보다는 의견을 여쭤 보고 싶네요
: : 제가 프로그램 짤때 마다 항상 고민 되는 부분이 있는데요
: :
: : 사용자가 어떤 값을 입력 할때마다 필요한 변수 혹은 메모리의 양이 달라진다면
: :
: : 아예 예상되는 가장 많은 변수의 수나 메모리값을 미리 잡아놓고 사용자의 요구를 받아 드리는게 낳나요 아니면
: : 사용자가 입력을 하면 그 값이 필요로 하는 변수의 수나 메모리의 양을 계산해서 필요한 만큼만 잡는게 낳은가요?
|