변수의 기본형 데이터 타입 사용시 (효율중시, 성능중시)

2021. 6. 22. 00:13프로그래밍/개인프로젝트

공부하면서 저의 생각을 정리한 글입니다

틀린내용이 많습니다.

추후에 지식이 쌓인다면 하나씩 업데이트할 생각입니다.


메모리크기 자료형 표현범위
1byte byte, boolean - 128 ~ 127
2byte short, char - 32,768 ~ 32,767
4byte int, float - 2,147,483,648 ~ 2,147,483,647
8byte long, double - 93,372,036,854,775,808
~ 93,372,036,854,775,807

데이터의 형태별로 다른게 무엇인가??


         - 메모리크기 (표현범위)

 

        * 표현범위에 맞는 형태를 쓴다면 메모리가 절약될 것이고 좀 더 효율적인 프로그램을 만들수 있다

        * 정말로 메모리가 빠듯한 상황이라면 데이터의 형태를 바꿔서 메모리를 절약할 수 있다.
        * 하지만 정수의 경우 int형태가 cpu에서 처리가 가장 빠르기 때문에
           성능을 중시한다면 byte나 short형태보다 int형태를 쓰는것이 좋다

        -> 효율과 성능의 관점에서 접근해 보았다
https://bongbong-89.tistory.com/8

컴퓨터에서 시각과 청각을 담당하는 5가지 요소 : 이미지(흑백,컬러), 문자, 소리, 영상

이미지(흑백) 


      1. 흑백만 필요하므로 boolean형, byte형 사용가능
          ex) binary image
             

       2. 0~255의 밝기값 : byte형 사용가능, boolean은 참/거짓 2가지 값만 표현가능하므로 사용 불가능
          ex)픽셀의 밝기값을 조절



이미지(컬러)

     
         RGB표현을 하기 위해선 3byte가 필요하므로 int형, float형


       * 2byte를 사용하는 char형태나 short형태는 메모리절약이나 성능면이나 장점이 없다고 생각함
         메모리절약을 위해선 byte형을 쓰고, 성능이 중요하면 int형을 사용한다


https://twlab.tistory.com/23

 

문자

   

     * 문자형은 의미를 담을 수 있는 char형이 제일 좋겠지만 다른형태로 대체할 수 있다면?
   

     * 자바에서 지원하는 문자인코딩은 아스키코드, 유니코드,  (영어는 1byte 나머지언어는 2byte)
      

        문자(영어) : 영어는 1byte를 사용하기 때문에 byte형
        문자(그외 언어) : 그 외 언어는 2byte를 사용하기 때문에 short형
        - CPU에서 int형을 가장 빠르게 처리하지만 메모리 절약을 위해 다른 형태를 사용할 수 있음

 

소리


       8비트 : 효과음은 복잡할 필요가 없기 때문에 byte형이 적절
       16비트 : 일반음악이나 cd가 16비트 이므로  short형, char형,

 

영상

 

        영상은 이미지의 흐름+소리 이므로 int형태로 통합해서 쓰는것이 효율적이다

 


이런 효율을 추구하는것이 큰 의미는 없지만 알고 안쓰는것과 모르는것은 차이가 있다.