`
qiezi
  • 浏览: 491392 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于内存管理的一点想法

    博客分类:
  • c++
阅读更多
分布式轻量级线程框架(还没取名)最近几个修改:
1、消息对象采用了引用计数,T1在去年一个贴子中建议过,当时不以为然,后来发现不使用引用计数有很多麻烦,还是加上了。
2、协议buffer的管理,以前是每连接使用一个大缓冲区,对于几百上千个连接来说并不是什么问题,看到有些对外网的系统保持几万个长连接,这部分缓冲区占了上G内存。现在把它改成链式缓冲区了,缓冲区由多个PAGE链接组成,可动态增长和减少,发送接收也改成readv/writev来适应这种buffer,感觉挺好。

以下都是瞎想。

轻量级线程栈的增长问题,由于不能预估栈大小,栈的分配很麻烦。是否可以给每个线程分配较大的栈,没有使用的栈内存只占用虚拟内存?
栈的保护,能否使用mprotect把不活动的线程栈保护起来,避免被修改?
分享到:
评论

相关推荐

    积分java源码-libsolace:关键系统的现代C++框架

    它让开发人员负责系统并提供显式内存管理机制。 因此,它不会在初始化后产生线程或分配内存。 贡献改变 该框架正在进行中,非常欢迎贡献。 有关如何为此项目做出贡献的详细信息,请参阅。 请注意,为了保持代码质量...

    UniDAC 4.1.4 for D6-XE2

    ADO没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个UniDirectional属性,支持单向速度,这点和DBX的想法不谋而合。况且,单向数据集特性速度...

    unidac350d14pro

    ADO没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个 UniDirectional属性,支持单向速度,这点和DBX的想法不谋而合。况且,单向数据集特性速度...

    chromeTM-crx插件

    语言:English chrome任务和标签管理器 chrome任务管理器 - 显示CPU模型 ... 自动暂停选项页面的非活动选项卡 很乐意获得更多关于改善这一点的建议和想法。 干杯 像这个延期? 给我买咖啡 https://ko-fi.com/raziellll

    sunfish_rs:锈重写翻车鱼简单的象棋引擎

    制作了第一个防锈端口,启发了这一点 怎么玩: 目前,它仅支持UCI的一个非常基本的子集,不久将添加选择简单cli的选项。 挑战,告诉我您的想法! 去做: 改善时间管理,也许将搜索重写为迭代而不是递归 支持残局...

    DevArt UniDAC v.3.70.0.19 [D7-XE]

    ADO没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个UniDirectional属性,支持单向速度,这点和DBX的想法不谋而合。况且,单向数据集特性速度...

    asp.net知识库

    关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...

    UniDAC 2.70 源码版本 (For Delphi2010)

    ADO没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个UniDirectional属性,支持单向速度,这点和DBX的想法不谋而合。况且,单向数据集特性速度...

    OpenSSL-1_0_0d_Win32

    什么是OpenSSL 众多的密码算法、公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法。果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏的过程。这个...

    C语言入门经典(第4版)--源代码及课后练习答案

    IvorHorton还著有关于C、C++和Java的多部入门级好书,如《C语言入门经典(第4版)》和《C++入门经典(第3版)》。 译者  杨浩,知名译者,大学讲师,从事机械和计算机方面的教学和研究多年,发表论文数篇,参编和翻译的...

    openssl-1.0.0a

    什么是OpenSSL 众多的密码算法、公钥基础设施标准以及SSL协议,或许这些有趣的功能会让你产生实现所有这些算法和标准的想法。果真如此,在对你表示敬佩的同时,还是忍不住提醒你:这是一个令人望而生畏的过程。这个...

    Linux操作系统基础教程

    基本的系统管理命令.......................................................................................................14 五.关於 Process 处理的指令....................................................

    二十三种设计模式【PDF版】

    正因为这点不同,导致建筑的管理模式和软件的管理模式就有很多不同, 有些人认识不到这点,就产生了可以大量使用"软件 蓝领"的想法,因为他羡慕建筑中"民工"的低成本. 要知道软件还有一个与建筑截然相反的责任和用途,那...

    C++MFC教程

    使用CString可不指明内存大小,CString会根据需要自行分配。下面介绍几个成员函数: GetLength 得到字符串长度 GetAt 得到指定位置处的字符 operator + 相当于strcat void Format( LPCTSTR lpszFormat, ... ); ...

    WINRAR5.0正式注册版

    也感谢 Artem Drobanov 和 Bulat Ziganshin 提供例子和想法使 Reed-Solomon码更有效率。 5. "测试" 命令验证 RAR 5.0 恢复记录的有效性。在处理完所有压缩文件后测试恢复记录。 如果损坏的压缩文件包含恢复记录...

    网管教程 从入门到精通软件篇.txt

    GRP:程序管理组 H HEX:Macintosh BinHex2.0文件 HLP:帮助文件;Date CAD Windows帮助文件 HPP:C++程序头文件 HQX:Macintosh BinHex 4.0文件 HT:HyperTerminal(超级终端) HTM,HTML:超文本文档 HTT...

Global site tag (gtag.js) - Google Analytics