18得票3回答
如何在C语言中测量函数的堆栈使用情况?

有没有一种方法可以测量函数使用的堆栈内存量? 这个问题并不特定于递归函数;然而我想知道一个被递归调用的函数会占用多少堆栈内存。 我希望优化函数的堆栈内存使用;但是,如果不知道编译器已经做出了哪些优化,那么这只是瞎猜是否真正改进了程序。 明确一点,这不是一个关于如何优化更好的堆栈使用的问题...

18得票4回答
为什么std :: initializer_list可以不指定大小并且同时在堆栈上分配?

我从这里了解到,std::initializer_list不需要分配堆内存。这让我感到非常奇怪,因为您可以接收一个std::initializer_list对象而无需指定其大小,而对于数组,您总是需要指定大小。虽然这篇文章提到 initializer list 内部实现几乎与数组相同。 我很难...

18得票2回答
为什么在Rust中字符串字面值是&str而不是String?

我只是想问为什么Rust决定使用&str而不是String来表示字符串字面值。难道Rust不可能自动将字符串字面值转换为String并将其放在堆上,而不是将其放在栈上吗?

17得票4回答
如何在一秒钟内准确地发送超过4000个请求?

我有一个HTTP GET请求,需要在1秒钟内精确地将请求发送给应用服务器超过4000次。 我正在使用JMeter发送这些请求。 我每次使用嗅探工具(Wireshark)对每个测试进行网络抓包分析。 我已经尝试了单台机器、多台机器(并行)甚至分布式模式来实现这一点。 实际上,JMeter的结果并...

17得票3回答
为什么需要堆和栈?

为什么汇编语言同时使用堆栈和堆?它们似乎是重复的。

17得票4回答
数组在内存中是如何存储的?

我有一个简单的程序,它将一个数组初始化为:int a[]={10,20,30,40,50}; char *p; p=(char*)a; 现在我想通过指针p访问每个字节的值。为此,我需要知道:数组是如何存储在内存中的?它是存储在堆栈还是堆中?

17得票9回答
垃圾收集器会收集堆内存、栈内存还是两者都收集?

我读了很多关于垃圾回收的文章,几乎所有文章都是讲堆内存。所以我的问题是,“垃圾回收是回收栈内存、堆内存还是两者都回收”。

16得票2回答
堆 vs 数据段 vs 栈分配

我正在看以下程序,不确定内存是如何分配的以及为什么会这样:void function() { char text1[] = "SomeText"; const char* text2 = "Some Text"; char *te...

16得票3回答
ctime()函数返回一个字符串,为什么我们不需要释放这个字符串的内存?

函数ctime的原型是:char *ctime(const time_t *timep); 我们可以看到,它返回一个字符串。但是,这个字符串被包含在哪里呢? 为什么我们不应该释放这个字符串的内存。 这段示例代码会产生很多错误消息。char *p; p = ctime(...); ... f...

16得票3回答
ARM:为什么在函数调用时需要推送/弹出两个寄存器?

我知道在函数调用开始时需要将链接寄存器压入堆栈,并在返回之前将该值弹出至程序计数器,以使执行能够从函数调用之前的位置继续。 但我不明白为什么大多数人会通过添加额外的寄存器来实现这一点。例如: push {ip, lr} ... pop {ip, pc} 例如,这是一段ARM汇编中的He...