내 앱을 디자인하는 방법을 결정하려고합니다.Android : short가 실제로 2 바이트를 차지합니까?
public class ParamValue {
protected String sValue = null;
protected short shValue = 0;
protected short mode = PARAM_VALUE_MODE_UNKNOWN;
/*
* ...
*/
}
나는이 인스턴스의 배열이 있습니다
난 그냥이 같은 클래스의 300 인스턴스를 가지고있다. 나는이 반바지가 실제로 2 바이트를 취하는 지 알지 못하거나 어쨌든 4 바이트를 차지합니까?
그리고 AIDL을 통해 이러한 개체의 목록을 List<Parcelable>
으로 전달해야합니다. 소포는 readShort()
및 writeShort()
이 아니며 int
과 만 작동합니다. 그래서, 여기도 짧은 사용하려면 수동으로 하나의 int로 두 개의 내 반바지를 팩, 그것을 포장하고 다시 풀다합니다. 너무 눈에 띄지 않습니다.
반바지 얼마나 걸릴지 말해 주시겠습니까? 여기 int 대신 short를 사용하는 것이 합리적입니까?
UPDATE : 나는 미래의 독자에 대한 내 질문에 업데이트
.
그래서 테스트 앱을 작성했고 short
을 사용할 이유가 전혀 없다는 것을 알아 냈습니다. int
과 같은 공간이 필요하기 때문입니다. 나는 그런 반바지의 배열을 정의한다면 :
protected short[] myValues[2];
는 그것의 int의 배열보다 적은 공간을 차지 :
protected int[] myValues[2];
그래서, 적은 메모리 사용량을 얻으려고 노력하면 짧은 사용할 이유가없는 것 같아? –
많은 수의 객체를 생성하고'Runtime.freeMemory()'를 사용하여 프리 메모리를 측정하고 실제 프로덕션 JVM에서 실행하는 테스트 프로그램을 작성할 것입니다. 객체를 정의하는 두 가지 방법 모두에서이 작업을 수행하고 차이점을 감지 할 수 있는지 확인하십시오. 차이가있을 수도 있고 그렇지 않을 수도 있지만, 이것은 당신이 확실히 보게 할 것입니다. –
적어도 배열의 경우 JNI를 지원할 것이라면 구현에 달려 있다고 생각하지 않습니다. –