为什么?
如何解决?
byte[]
需要设置null
? Eclipse Memory Analyzer
答案 0 :(得分:1)
对此问题的回答取决于代码,您在应用程序中如何使用#include <stdio.h>
#include <stdint.h>
typedef union
{
uint8_t array[8];
uint64_t u64;
} my_type;
int main()
{
my_type t = {0};
t.array[0] = 0x01;
// how the array is actually allocated:
for(int i=0; i<8; i++) // 0100000000000000 on all machines
{
printf("%.2X", t.array[i]);
}
printf("\n");
// how the array turns out when printed as a 64 bit int:
printf("%.16llX\n", t.u64); // 0000000000000001 little endian
// perhaps what you intended to do, on a little endian machine
t.u64 <<= 63;
printf("%.16llX\n", t.u64); // 8000000000000000 little endian
return 0;
}
。
如何解决?
byte[]
使用标记byte
检查logcat消息并运行您的应用程序。检查
D / dalvikvm(28039):GC_CONCURRENT释放473K,7%免费9503K / 10180K,暂停2ms + 3ms,总计22ms
在这里,注意字段 -
9503K 是在我们的应用程序中保存实时对象引用的数量。当您在应用程序中遍历时,此值将为 长大。这个是正常的。但并行GC也正在运行并尝试 释放没有强关联的资源/对象引用。 如果您没有找到值 9503K ,那么这是警告我们。 这是我们的应用肯定会泄漏内存的信号。
有关内存优化的详细信息,请检查Google IO video for memory optimization and using mat tool of eclipse