`

list容量测试

阅读更多
电脑硬件条件:


测试代码:
public static void main(String[] args) {  
        ArrayList<Float> list_str=new ArrayList<Float>();  
        int len=(int) Math.pow(2, 22);  
        System.out.println("运行次数:"+len);  
        for(int i=0;i<len;i++){  
            //String str="a "+i;  
            //list_str.add(str);  
//          int t=i;  
//          Student student=new Student();  
//          student.setId(i);  
//          student.setName("第+"+i);  
//          list_str.add(student);  
            float f=(float)i;  
            list_str.add(f);  
        }  
        for(int j=0;j<len;j++){  
            System.out.println(list_str.get(j)+"    "+j);  
        }  
        System.out.println("运行结束!"+len);  
    }  


一.String为对象存在list里
    1. 当运行了2的16次方时,程序正确执行
    2. 当运行了2的24次方(16777216)时,程序报outofmemory的内存溢出错误
    3. 当运行了2的18次方(262144)时,程序正常运行
    4. 当运行了2的19次方(524288)时,程序正常运行
    5. 当运行了2的20次方(1048576)时,程序报outofmemory:Java heap space的内存溢出错误,说明堆的空间呗用完了

          运行极限是2的19次方
二.List存int数据
    Int数据是java的基本数据类型,存在栈空间里
    1. 当运行了2的32次方(2147483647)时,程序报outofmemory:Java heap   space
   2. 当运行了2的24次方(16777216)时,程序报outofmemory:Java heap space
   3. 当运行了2的21次方(2097152)时,程序正确执行

运行极限是2的21次方
三.自建对象Student存在list中
    1. 当运行了2的21次方(2097152)时,程序报outofmemory:Java heap space
   2. 当运行了2的20次方(1048576)时,程序报outofmemory:Java heap space
   3. 当运行了2的19次方(524288)时,程序正常运行

运行极限是2的19次方

四.List存float数据
    1. 当运行了2的19次方(524288)时,程序正常运行
    2. 当运行了2的21次方(2097152)时,程序正确执行
    3. 当运行了2的22次方(4194304)时,程序报outofmemory:Java heap space

运行的极限是2的21次方
五.结论
    要是ArrayList存的是int、float的基本数据类型,其最大的容量是2的21次方,要是存的是纯对象类型,其最大容量是2的19次方,它的限制条件的很大一个是内存问题,就是计算机的堆空间用完了
分享到:
评论

相关推荐

    简单测试代码

    ArrayList是java.util.ArrayList类的实例,它实现了List接口。ArrayList底层基于数组实现,允许存储任意类型的对象,并提供了动态增长的能力。当添加的元素超出ArrayList的当前容量时,它会自动扩大数组的大小以适应...

    seq_list.rar_seq_list_seqlist数据结构_seq线性表_顺序表的list类

    "seq_list.rar" 是一个压缩包,包含关于序列数据结构——seq_list的相关实现和测试。在这个上下文中,`seq_list` 可能是一个特定实现的顺序表(顺序线性表),它是一个在内存中连续存储元素的集合。 顺序表是数据...

    重写C++的list实现增 删 改的功能

    除了基本操作外,自定义`list`还需要实现迭代器、遍历、容量检查、空检查等方法。在设计自定义容器时,确保遵循C++的迭代器概念是非常重要的,因为这是STL算法库的基础。此外,还需要考虑线程安全问题,如果在多线程...

    性能测试计划(英文的)_模板.doc

    3. **测试方法** (Approach): 详细说明了进行性能测试的策略,如是否采用并发测试、压力测试、耐久性测试或容量规划。它也涵盖了如何模拟真实用户行为,以及测试的执行顺序。 4. **负载测试类型和时间表** (Load ...

    C 语言通用 List 集合.zip

    在这个"C 语言通用 List 集合"中,可能还包括了各种操作的示例代码和测试用例,帮助开发者理解如何在实际项目中使用这个通用List集合。通过学习和实践,开发者可以掌握在C语言中自定义数据结构和算法,提高编程能力...

    sequence_list.rar

    例如,在C语言中,可以定义一个动态数组,当数组达到其容量时,创建一个更大的数组并复制原数组中的元素到新数组。 2. **顺序表的删除操作**:删除操作同样涉及到元素的移动。假设我们要删除第i个元素,所有位置...

    forword_list类的实现

    5. **测试与调试**:编写单元测试用例,验证`forward_list`的正确性和性能,使用VS2019的调试工具检查潜在问题。 6. **遵循C++标准**:为了确保所有操作符合C++标准,应该遵循C++11或更高版本的规范。 在完成这样...

    效率源大容量硬盘检测修复程序v3.0中文安装版

    效率源大容量硬盘检测修复程序支持超过136G硬盘的准确高速检测,最大可测试2000G,而且不需要主板支持,全物理访问,准确、可靠。3.0版光盘版启动速度快,3秒即可进主程序,遇坏道跨越时间比原1.6版缩短近一倍,内置...

    JAVA容器效率深度分析List

    在Java编程中,容器是用于存储对象的集合,它们提供了数据结构和算法,使得我们可以方便地组织和管理数据。本文将深入分析Java中的List接口及其常见...在具体应用时,还需要结合业务需求和性能测试,才能做出最佳决策。

    Redis大数据平台测试方案.docx

    - 硬件环境:硬件配置需满足Redis大数据处理的需求,包括足够的内存容量以支持大数据量存储,高速的处理器以提高数据处理速度,以及稳定的网络连接以确保数据传输的效率。 - 软件环境:包括操作系统的选择(如Linux...

    StackList:无GC开销的栈List数据结构 Non GC alloc stack list struct

    1. **容量限制**:StackList的最大容量是固定的,超过这个限制,就需要手动扩展或重新分配内存,否则可能会导致溢出。 2. **效率与灵活性**:虽然StackList在内存管理上更高效,但牺牲了动态调整大小的灵活性。因此...

    CDMA2000网规网优DT、CQT、DO鼎立测试教程

    DT测试主要评估网络覆盖、容量和呼叫质量,CQT则专注于通话质量,通常包括手机拨号连接的创建。DO测试关注数据传输性能,尤其是EVDO技术的数据速率。FTP下载和上传测试则用来衡量网络的上传下载速度,这对于评估用户...

    web test LoadRunner fuction_list

    LoadRunner是一款功能强大的性能测试工具,能够模拟大量用户并发访问应用,以评估系统在高负载下的性能、稳定性及容量。在这个场景中,“function_list”很可能指的是LoadRunner中的脚本编程函数列表,这些函数用于...

    SMI flash support list-H0415-Dyna-USB.pdf

    ### SMI Flash Support List H0415-Dyna-USB.pdf 知识点解析 #### 概述 根据所提供的文档信息,“SMI Flash Support List H0415-Dyna-USB.pdf”是一份关于不同型号闪存芯片的支持列表文档。这份文档主要列出了三星...

    C++智能指针及容器测试用例

    例如,测试`std::vector`时,你可以创建一个向量,添加元素,然后检查其大小、容量和元素值。对于`std::shared_ptr`,你可以测试其生命周期,确保在适当的时候被释放。 在`cppptest`文件夹中,你可能找到了包含这些...

    Rockchip_eMMC+DDR_SupportList

    其次,是《Rockchip_Support_List_DDR_Ver2.43.pdf》,这份文档聚焦于Rockchip平台对DDR(Double Data Rate)内存的支持。DDR内存是系统内存的一种,对于处理速度和响应时间至关重要。可能包含的内容包括: 1. DDR...

    集合ArrayList测试集合ArrayList测试集合ArrayList测试

    `ArrayList`是`List`接口的一个实现,这意味着它可以存储一系列有序的元素,并提供了添加、删除、修改和遍历元素的方法。在深入讨论`ArrayList`之前,让我们先明确一下`集合`的概念。 集合是Java中用于存储多个对象...

Global site tag (gtag.js) - Google Analytics