解决方案 »
- 关于googlemap apikey 的问题
- help.... 有谁知道怎样取消控件绑定的Listener?
- 为什么调用TabHost中的公共类getTabHost()会报错呢?
- android 如何读取同学录中的数据
- android widget 最新结构
- 为什么找不到getAllMessagesFromIcc
- 散分,终于完成可以在Android和PC上互通的UDP可靠传输协议
- 一个json解析问题,求指点
- java.lang.OutOfMemoryError: (Heap Size=47843KB, Allocated=39431KB)
- android,view的重绘
- 做一个手机定位遇到问题不会修改,求助
- SQLite Database与SQLiteExpertPersonal两者区别、作用、联系?
但是你是写一个app是没有办法修改这写prop的,如果你的数据特别零碎,最好自己做内存管理。
比较纳闷的是android中有个隐藏的vmRuntime,通过反射可以设置内存的利用率,却不能设置heapminfree等。那内存管理怎么做的呢,这个我不太懂呢
比较纳闷的是android中有个隐藏的vmRuntime,通过反射可以设置内存的利用率,却不能设置heapminfree等。那内存管理怎么做的呢,这个我不太懂呢
Runtime应该用处不大了,因为不少prop是启动的时候就已经使用了,重新设置已经没有用了。而且对于你的case来说,是内存占用比较大,修改这些prop并不能改变这个事实的。
我是建议把对象放到native去管理。
比较纳闷的是android中有个隐藏的vmRuntime,通过反射可以设置内存的利用率,却不能设置heapminfree等。那内存管理怎么做的呢,这个我不太懂呢
Runtime应该用处不大了,因为不少prop是启动的时候就已经使用了,重新设置已经没有用了。而且对于你的case来说,是内存占用比较大,修改这些prop并不能改变这个事实的。
我是建议把对象放到native去管理。恩恩,是很大的内存,能达到一百多兆,放到native如何管理,能给个方向吗?这一块没有接触过,就没有办法在应用层设置gc策略的吗?减少gc次数,我看有个systemproperties应该存储了系统prop中的参数,android每个应用都会开启一个dalvik,按理来说应用本身可以对dalvik进行特殊的设置的呀,真的谢谢你了
比较纳闷的是android中有个隐藏的vmRuntime,通过反射可以设置内存的利用率,却不能设置heapminfree等。那内存管理怎么做的呢,这个我不太懂呢
Runtime应该用处不大了,因为不少prop是启动的时候就已经使用了,重新设置已经没有用了。而且对于你的case来说,是内存占用比较大,修改这些prop并不能改变这个事实的。
我是建议把对象放到native去管理。恩恩,是很大的内存,能达到一百多兆,放到native如何管理,能给个方向吗?这一块没有接触过,就没有办法在应用层设置gc策略的吗?减少gc次数,我看有个systemproperties应该存储了系统prop中的参数,android每个应用都会开启一个dalvik,按理来说应用本身可以对dalvik进行特殊的设置的呀,真的谢谢你了
dalvik vm是每个进程都有一个,但是你要看看这些参数都有什么意义。gc的速度影响有两个方面,一个是object的数量,另外一个heap的大小。
object的数量,这个是你app绝对的,这些参数不会有影响。
对于heap当前的大小,这几个prop有一定的影响,但是对于你memory消耗本来就很高的情况下,我觉得差距不会大的。放到native管理,就是说你这些对象要用malloc来申请,提供接口让java层可以操作这些对象。如果都是小对象,那么可以用pool来管理,防止碎片化。
第二:分散内存, 将你的应用分散在多个进程里面。 dalvik.vm.heapminfree,dalvik.vm.heapmaxfree这些属性属于静态系统属性,运行时修改是没有用的。
比较纳闷的是android中有个隐藏的vmRuntime,通过反射可以设置内存的利用率,却不能设置heapminfree等。那内存管理怎么做的呢,这个我不太懂呢
Runtime应该用处不大了,因为不少prop是启动的时候就已经使用了,重新设置已经没有用了。而且对于你的case来说,是内存占用比较大,修改这些prop并不能改变这个事实的。
我是建议把对象放到native去管理。恩恩,是很大的内存,能达到一百多兆,放到native如何管理,能给个方向吗?这一块没有接触过,就没有办法在应用层设置gc策略的吗?减少gc次数,我看有个systemproperties应该存储了系统prop中的参数,android每个应用都会开启一个dalvik,按理来说应用本身可以对dalvik进行特殊的设置的呀,真的谢谢你了
dalvik vm是每个进程都有一个,但是你要看看这些参数都有什么意义。gc的速度影响有两个方面,一个是object的数量,另外一个heap的大小。
object的数量,这个是你app绝对的,这些参数不会有影响。
对于heap当前的大小,这几个prop有一定的影响,但是对于你memory消耗本来就很高的情况下,我觉得差距不会大的。放到native管理,就是说你这些对象要用malloc来申请,提供接口让java层可以操作这些对象。如果都是小对象,那么可以用pool来管理,防止碎片化。要用到c++吗?是通过jni调用吗?这个不太懂,能具体指导一下吗?麻烦你了!
因为内存是以进程为分配单位的, 每个进程的可分配内存是独立计算的, 所以分散内存的意思就是分散到不同进程中。
在Androidmanifest里面,如果比较独立的模块,配置android:process属性。
因为内存是以进程为分配单位的, 每个进程的可分配内存是独立计算的, 所以分散内存的意思就是分散到不同进程中。
在Androidmanifest里面,如果比较独立的模块,配置android:process属性。 那是不是两个进程之间就不能相互的访问数据了呢,彼此都独立了,
思路无非就是时间换空间。
因为内存是以进程为分配单位的, 每个进程的可分配内存是独立计算的, 所以分散内存的意思就是分散到不同进程中。
在Androidmanifest里面,如果比较独立的模块,配置android:process属性。 那是不是两个进程之间就不能相互的访问数据了呢,彼此都独立了,是的, 不过还是可以通过service,provider等方式来相互访问。
这个和具体需求有关。你能不能解释一下你的需求?
我觉得类似需求的程序,都有替代方法解决。我前一阵写过一个程序是要给非常多的数据做排序,在内存里完全装不下。
我的程序需要先加载很大的xml文件。x数据加载完以后大概有100多兆了,然后在应用中做操作的时候,就会去调用部分数据(1m到2m左右)将数据填充到我创建的对象里面进而显示出来。操作的时候gc20多次,耗时20s左右有效。不知道该如何优化
这个和具体需求有关。你能不能解释一下你的需求?
我觉得类似需求的程序,都有替代方法解决。我前一阵写过一个程序是要给非常多的数据做排序,在内存里完全装不下。
我的程序需要先加载很大的xml文件。x数据加载完以后大概有100多兆了,然后在应用中做操作的时候,就会去调用部分数据(1m到2m左右)将数据填充到我创建的对象里面进而显示出来。操作的时候gc20多次,耗时20s左右有效。不知道该如何优化
是用sax解析吗?如果是dom解析可以换成sax。
我不知道你加载的数据的使用方式,但是可以考虑把部分数据换出到文件上(类似OS的内存页面换出机制)。
这个和具体需求有关。你能不能解释一下你的需求?
我觉得类似需求的程序,都有替代方法解决。我前一阵写过一个程序是要给非常多的数据做排序,在内存里完全装不下。
我的程序需要先加载很大的xml文件。x数据加载完以后大概有100多兆了,然后在应用中做操作的时候,就会去调用部分数据(1m到2m左右)将数据填充到我创建的对象里面进而显示出来。操作的时候gc20多次,耗时20s左右有效。不知道该如何优化
是用sax解析吗?如果是dom解析可以换成sax。
我不知道你加载的数据的使用方式,但是可以考虑把部分数据换出到文件上(类似OS的内存页面换出机制)。
本质上还是你业务逻辑的算法设计问题,怎么样去分解问题域,怎么样分而治之。
这个和具体需求有关。你能不能解释一下你的需求?
我觉得类似需求的程序,都有替代方法解决。我前一阵写过一个程序是要给非常多的数据做排序,在内存里完全装不下。
我的程序需要先加载很大的xml文件。x数据加载完以后大概有100多兆了,然后在应用中做操作的时候,就会去调用部分数据(1m到2m左右)将数据填充到我创建的对象里面进而显示出来。操作的时候gc20多次,耗时20s左右有效。不知道该如何优化
是用sax解析吗?如果是dom解析可以换成sax。
我不知道你加载的数据的使用方式,但是可以考虑把部分数据换出到文件上(类似OS的内存页面换出机制)。
本质上还是你业务逻辑的算法设计问题,怎么样去分解问题域,怎么样分而治之。我也想换解析方式,可是那些处理逻辑已经封装在公司的框架里面了,我所能处理的就是调用公司框架,在那么大的内存状况下,如何能运行起来流畅
啊,绑定什么东东啊,这个我不清楚呀,还请赐教呀应该就是bundle吧