zoukankan      html  css  js  c++  java
  • 内存申请那点事

    MiniTimer m_timer;
    
        m_timer.init();
    
        m_timer.Start();
        for(int n =0 ;n < 200 ;++n)
        {
            
            Vertex* meshData = new Vertex[1000];
        }
    
        double usetime = m_timer.getTime();
        printf("New Large Memory :%f 
    ",usetime);
    
        m_timer.Start();
        for(int n =0 ;n < 2000 ;++n)
        {
            Vertex* meshData = new Vertex[100];
        }
    
        double usetime2 = m_timer.getTime();
        printf("New Low Memory   :%f 
    ",usetime2);
    
        m_timer.Start();
        for(int n =0 ;n < 20000 ;++n)
        {
            Vertex* meshData = new Vertex[10];
        }
        double usetime3 = m_timer.getTime();
        printf("New varySmall mem:%f 
    ",usetime3);

    1.内存申请的总容量都一样,但是小块的数量不一样,结果如何?

    结果是内存块越小,花费的时间越多

    分别是:

    0.0083(秒)

    0.0090(秒)

    0.01934(秒)

    2.如果申请的内存一个是大块,一个是小块,哪个更快?

    MiniTimer m_timer;
    
        m_timer.init();
    
        m_timer.Start();
        for(int n =0 ;n < 200 ;++n)
        {
            
            Vertex* meshData = new Vertex[1000];
        }
    
        double usetime = m_timer.getTime();
        printf("New Large Memory :%f 
    ",usetime);
    
        m_timer.Start();
        for(int n =0 ;n < 200 ;++n)
        {
            Vertex* meshData = new Vertex[100];
        }
    
        double usetime2 = m_timer.getTime();
        printf("New Low Memory   :%f 
    ",usetime2);
    
        m_timer.Start();
        for(int n =0 ;n < 200 ;++n)
        {
            Vertex* meshData = new Vertex[10];
        }
        double usetime3 = m_timer.getTime();
        printf("New varySmall mem:%f 
    ",usetime3);

    显然小块的速度更快。

    花费时间分别为:

    0.0076(秒)

    0.00076(秒)

    0.000217(秒)

    总结: 如果无可改变的要申请的大块内存,就不要分开几个小块申请,内存块越小,速度越快  ,如果你用内存池,那这些都是废话了

    分割线-------------------------------------------------------------------------------------------------------------------------------------------------------

    2017-5-25

    3.windows最大申请内存他会限制到 大约2G

    但是1G多已经是申请不到了

  • 相关阅读:
    PostMan 安装步骤详解
    使用MySQL,运行系统报错Authentication method 'caching_sha2_password' is not supported.
    jmeter安装和环境变量配置
    Svn项目迁移到Git及Visual Studio 中git使用
    SQLServer 2008以上误操作数据库恢复方法
    ABP入门系列之3——创建实体/Code First创建数据表
    ABP入门系列之2——ABP模板项目
    uni-app使用Canvas绘图
    uni-app中picker组件的一个坑
    Nginx用法详解
  • 原文地址:https://www.cnblogs.com/dragon2012/p/6795870.html
Copyright © 2011-2022 走看看