加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 大缓冲区与大型静态缓冲区有比较有优势吗?

发布时间:2020-12-16 10:51:53 所属栏目:百科 来源:网络整理
导读:请考虑以下代码. DoSomething1()在1000次连续执行中比DoSomething2()更快吗? 我会假设,如果我在哪里调用DoSomething1()它1000次,它会比调用DoSomething2()1000倍更快. 使我的所有大缓冲区都静止有什么不利吗? #define MAX_BUFFER_LENGTH 1024*5 void DoSom
请考虑以下代码.

DoSomething1()在1000次连续执行中比DoSomething2()更快吗?
我会假设,如果我在哪里调用DoSomething1()它1000次,它会比调用DoSomething2()1000倍更快.

使我的所有大缓冲区都静止有什么不利吗?

#define MAX_BUFFER_LENGTH 1024*5 
void DoSomething1()
{
    static char buf[MAX_BUFFER_LENGTH] ; 
    memset( buf,MAX_BUFFER_LENGTH );
}

void DoSomething2()
{
    char buf[MAX_BUFFER_LENGTH] ; 
    memset( buf,MAX_BUFFER_LENGTH );
}

感谢您的时间.

解决方法

静态缓冲区的缺点:

>如果您需要线程安全,那么使用静态缓冲区可能不是一个好主意.
>直到程序结束才会释放内存,从而使内存消耗更高.

静态缓冲区的优点:

>静态缓冲区的分配较少.您不需要每次都在堆栈上进行分配.>使用静态缓冲区,由于分配过高,堆栈溢出的可能性较小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读