社区
语言基础/算法/系统设计
帖子详情
局部变量,有必要用内存池吗?
changsn
2012-06-14 12:06:47
就是在过程内部,需要大量用到 char数组。buffer:array[0..20480]of char;
这样有必要用内存池吗?
...全文
203
10
打赏
收藏
局部变量,有必要用内存池吗?
就是在过程内部,需要大量用到 char数组。buffer:array[0..20480]of char; 这样有必要用内存池吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
changsn
2012-06-14
打赏
举报
回复
可以说详细点吗?是做为Socket缓存
[Quote=引用 6 楼 的回复:]
如果这个过程被调用得非常频繁,比如socket的数据接收缓存,那么每次重新分配和释放内存是不合适的,你可以弄一个全局的内存区,就如你定义的那样。
[/Quote]
「已注销」
2012-06-14
打赏
举报
回复
如果这个过程被调用得非常频繁,比如socket的数据接收缓存,那么每次重新分配和释放内存是不合适的,你可以弄一个全局的内存区,就如你定义的那样。
武稀松
2012-06-14
打赏
举报
回复
除非像线程这样一直在函数里面跑循环的局部变量.否则局部变量离开函数就自动释放了.怎么搞内存池.
mhhaifeng
2012-06-14
打赏
举报
回复
什么是内存池?
过程内部 自已申请的内存,自己释放
你说的buffer:array[0..20480]of char; 不是你自己申请的,不用管
但这个 buffer 最好不要太大
kaikai_kk
2012-06-14
打赏
举报
回复
沒必要。。。
bdmh
2012-06-14
打赏
举报
回复
buffer是共用的吗,如果共用,声明为全局的
Oraclers
2012-06-14
打赏
举报
回复
Delphi 的數組是生存期自管理的,本人覺得沒必要再去另外管理。
zwjchina
2012-06-14
打赏
举报
回复
"就是在过程内部,需要大量用到 char数组。buffer:array[0..20480]of char;
这样有必要用内存池吗?"
我的理解是:要看情况
过程内,使用局部变量,实际是在栈上分配内存.而通常Delphi默认的栈的最大大小是1M
如果,局部变量使用栈上的内存过大,有可能导致程序栈溢出. 这时,可以考虑使用内存池.
当然,另一个解决办法是在编译选项中扩大栈的大小.
haitao
2012-06-14
打赏
举报
回复
服务端程序,可能需要
客户端,一般不需要
「已注销」
2012-06-14
打赏
举报
回复
再细一点,就是分配好缓存以后,将他的地址传入你的的socket接收函数。这个没法再细了。winsock有不同的io模式,不同的io模式下处理方式是不同的。
[Quote=引用 7 楼 的回复:]
可以说详细点吗?是做为Socket缓存
引用 6 楼 的回复:
如果这个过程被调用得非常频繁,比如socket的数据接收缓存,那么每次重新分配和释放内存是不合适的,你可以弄一个全局的内存区,就如你定义的那样。
[/Quote]
Windows内核-内存管理
- 每个进程都有4GB的空间,但是这4GB空间并不是都在使用,有没有一个地方在记录着哪些地址空间已经使用了,哪些没有使用? - 肯定有一个地方在记录 - 怎么记录线性地址是否是可以用的?  ...
你真的了解静态变量、常量的存储位置吗?
文章目录引言C++对内存的划分如何落实在Linux上自由存储区和堆之间的问题栈常量区静态存储区静态
局部变量
静态
局部变量
、静态全局变量、全局变量的异同 引言 在动态内存的博客中,我提到: 在Linux 内存管理的博客中,我提到: 尽管都有尽可能完全的描述,并且两者大致意思没有冲突。而之所以令我一直感到略有不同,越看越迷糊的原因是:第一张图讲的其实是C++在概念上对内存的划分,第二张图讲的是Linux对虚拟内存进行的划分。 前者是概念上的,也是C++程序在运行时会切实执行的,而后者就是在Linux系统上
关于java成员变量与
局部变量
以及成员方法的内存区别问题
今天去面试遇到了有关成员变量与
局部变量
的问题,主要是涉及所处内存的问题和初始化问题,简单的总结一下: 1.java中成员变量处在堆内存(方法区中的静态区)中,
局部变量
处在栈内存中; 知其然知其所以然,我们简单了解一下Java内存分配: 一个完整的Java程序运行过程会涉及以下内存区域: 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。 堆:用来存放动态产生的数据,比如new出来的对象。...
字节:成员变量,
局部变量
,存放在哪里,为什么
局部变量
需要初始化
最近一个小伙伴反馈了他在面试过中遇到的问题。这个问题考察了我们很多知识点,涉及了 Jvm 内存结构、类加载机制、 Java 对象模型等等知识点。Jvm 内存结构和 Java 虚拟机的运行时区域有关 Java 对象模型和 Java 对象在虚拟机中的表现形式有关如果对这些知识点,不是很了解的话,是很难全部回答上来,今天这篇文章我们围绕这些问题,一起来分析一下。在 Java 中我们可以将变量分为两大类成员变量和
局部变量
,而成员变量又分为两大类静态成员变量和非静态成员变量。
【高并发
内存池
】第一篇:定长
内存池
设计
文章目录一. 什么是
内存池
?1. 池化技术2.
内存池
概念二. 为什么要有
内存池
?1. 内存碎片问题2.
内存池
带来的好处三. 定长
内存池
设计1. 定长
内存池
特点2. 定长
内存池
基本思想3. 定长
内存池
实现2.1 基本框架 一. 什么是
内存池
? 1. 池化技术
内存池
是池化技术的一种应用。所谓“池化技术”,就是程序先向系统申请过量的资源,然后自己管理,以备不时之需。之所以要申请过量的资源,是因为每次申请该资源都有较大的开销,不如提前申请好了,这样使用时就会变得非常快捷,大大提高程序运行效率。 生活中的池化
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章