我正在做大O记法的家庭作业。我们需要创建整数数量不断增加的列表,然后计算对列表进行排序所需的时间,以确定哪一个是Big O Collection.sort()。我能够对一个包含50,000个整数的列表进行排序,但是如果我再次尝试执行完全相同的操作,我将耗尽内存。我认为垃圾收集器应该回收我的内存,因此在理论上重复该操作应该没有问题。我做
问题是,至少在android OS 2.3中,总内存限制(通常是16MB)是java和(外部存储的)位图的组合,即使内存是空闲的(成功地GC'd),java的高水位线也不会下降(我可以识别),这意味着当我去分配最终的Bitmap时,我经常“内存不足”,即使那时我已经释放(和GC'd)了大部分空间。也就是说,我永远不会一次需要全部的16MB空间,但是留给位图的空间似乎是16MB减去最大历史java堆使用量(与当前使用