大缓冲区vs大静态缓冲区,有没有优势? [英] Large buffers vs Large static buffers, is there an advantage?
本文介绍了大缓冲区vs大静态缓冲区,有没有优势?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
请考虑以下代码。
DoSomething1()比DoSomething2()快了1000次连续执行吗?
我假设如果我在哪里调用DoSomething1()它1000次它会更快,然后调用DoSomething2()它1000次。
Is DoSomething1() faster then DoSomething2() in a 1000 consecutive executions? I would assume that if I where to call DoSomething1() it 1000 times it would be faster then calling DoSomething2() it 1000 times.
有任何缺点是使我所有的大型缓冲区都是静态的?
Is there any disadvantage to making all my large buffers static?
#define MAX_BUFFER_LENGTH 1024*5
void DoSomething1()
{
static char buf[MAX_BUFFER_LENGTH] ;
memset( buf, 0, MAX_BUFFER_LENGTH );
}
void DoSomething2()
{
char buf[MAX_BUFFER_LENGTH] ;
memset( buf, 0, MAX_BUFFER_LENGTH );
}
感谢您的时间。
推荐答案
静态缓冲区的缺点:
- 如果你需要线程安全,那么使用静态缓冲区可能不是一个好主意。
- 内存不会被释放,直到程序结束,因此使您的内存消耗更高。
静态缓冲区的优点:
- 你不需要每次都在堆栈上分配。
- 对于静态缓冲区,由于分配过高,堆栈溢出的可能性较小。
这篇关于大缓冲区vs大静态缓冲区,有没有优势?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文