visual studio 中的堆栈保留大小是什么意思

visual studio 中的堆栈保留大小是什么意思,第1张

/STACK 选项设置堆栈大小(以字节为单位)。此选项仅在生成 exe 文件时使用。

reserve 值指定虚拟内存中的总的堆栈分配。对于 x86 和 x64 计算机,默认堆栈大小为 1 MB。在 Itanium 芯片组上,默认大小为 4 MB。

commit 取决于 *** 作系统所作的解释。在 Windows NT 和 Windows 2000 中,它指定一次分配的物理内存量。提交的虚拟内存导致空间被保留在页面文件中。更高的 commit 值在应用程序需要更多堆栈空间时可节省时间,但会增加内存需求并有可能延长启动时间。对于 x86 和 x64 计算机,默认提交值为 4 KB。在 Itanium 芯片组上,默认值为 16 KB。

以十进制或 C 语言表示法指定 reserve 值和 commit 值。

STM32F10xs里面,;//Stack_Size 和 Heap_Size设置堆栈大小

Stack_Size EQU 0x00000200

AREA STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem SPACE Stack_Size

__initial_sp

;// <h> Heap Configuration

;// <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>

;// </h>

Heap_Size EQU 0x00000000

AREA HEAP, NOINIT, READWRITE, ALIGN=3

__heap_base

Heap_Mem SPACE Heap_Size

__heap_limit

 在日常DB2的维护中,transaction log full是比较常见的问题,日志空间使用情况也是我们比较重视的问题,那么如何查看日志空间使用情况呢?

其实昨天在提到归档设置,我们知道DB2 在database级别有几个参数,如下决定了事物日志的使用空间大小

Log file size (4KB) (LOGFILSIZ) = 60000

Number of primary log files (LOGPRIMARY) = 16

Number of secondary log files (LOGSECOND) = 200

Changed path to log files (NEWLOGPATH) =

Path to log files = /db2inst1_log01/sample

如此我们可以计算分配给日志的空间大约是(200+16)600004/1024/1024大约50gb。

如果日志是单独的文件系统分区,我们在 *** 作系统上即可看到日志空间使用情况,对日志使用情况进行监控,可以看到如下信息:

$ df -g

Filesystem gb blocks Free %Used Iused %Iused Mounted on

/dev/db2inst1_log01 6000 5450 10% 1458 1% /db2inst1_log01

这个需要登录到系统,其实db2pd也是可以看到日志信息的

db2pd -d sample -logs

database Partition 0 -- database SAMPLE -- Active -- Up 34 days 17:30:12 -- Date 2013-11-26-104249558342

Logs:

Current Log Number 117123

Pages Written 33697

Cur Commit Disk Log Reads 0

Cur Commit Total Log Reads 0

method 1 Archive Status Success

method 1 next Log to Archive 117123

method 1 First Failure n/a

method 2 Archive Status n/a

method 2 next Log to Archive n/a

method 2 First Failure n/a

Log Chain id 2

Current LSN 0x00001A2DDE649E70

关于存储器应该首先分清地址和内容两件事:

存储器是以字节进行编址的,也就是就一个地址对应一个存储单元,这个存储单元中能存放一个字节的内容。堆栈是特殊的存储单元,因此也存在地址和内容两件事。

1、“程序中设置堆栈长度为200个字节”的意思就是在内容中留有200个存储单元,每个单元存放一个字节的内容,所有就是留有200个字节的存储空间作为堆栈。

2、你所说的20位2进制数是指内存的地址,通常为了简化就用5位16进制表示,因为4位2进制数对应1位16进制数。

栈区是系统决定的,是一块不是很大的空间。当进入函数时,会将局部变量压入栈区保存,退出函数时,出栈释放掉。而堆区是用户自己的手动申请的,空间很大。用malloc系列函数申请,用free系列函数释放。

以上就是关于visual studio 中的堆栈保留大小是什么意思全部的内容,包括:visual studio 中的堆栈保留大小是什么意思、stm32如何设置堆栈大小、如何 调整DB2数据库的配置参数应用程序堆栈的大小 APPLHEAPSZ等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10110107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存