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

关于内存管理的一点想法

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

以下都是瞎想。

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

相关推荐

    cPP-pro.zip_Help!

    10. **优化**:针对性能瓶颈进行的优化措施,如内存管理、图形渲染和CPU效率提升。 通过研究这个文档,开发者可以获得对"BattlePonyTwo"游戏开发过程的深入了解,学习到实际项目中的最佳实践,以及如何解决特定挑战...

    java基础教程

    垃圾回收机制是JVM中用于管理内存、自动释放不再使用的对象所占用的内存空间的功能,它是Java语言的一大特点,减轻了程序员在内存管理方面的负担。Java代码安全性是指Java在设计时就考虑到了代码的安全性问题,包括...

    java 记账本

    【标题】:“Java 记账本”是一款基于Java编程语言开发的个人...10. **数据安全**:作为处理个人财务信息的应用,数据的安全性和隐私保护也是开发时需要考虑的重要方面,Java的强类型和内存管理机制有助于保证这一点。

    Effective C++ And More Effective C++

    书中所提出的准则不仅限于C++的语法层面,还包括了编码风格、内存管理、类设计、函数设计等高级主题。比如,书籍可能会建议如何通过使用智能指针来管理资源,以避免内存泄漏;或者如何通过构造函数和析构函数来控制...

    从PC总线到ARM的内部总线

    于是,北桥芯片被引入,它主要负责处理CPU与内存之间的通信,并通过前端总线(FSB)实现这一点。前端总线实际上就是系统总线,但专用于CPU与北桥之间的数据传输,从而大大提高了内存访问的速度。 #### PC中的I/O...

    C++编程新手错误.pdf

    理解这一点对于正确使用数组和指针至关重要,特别是在动态内存管理和函数参数传递中。 总结起来,C++编程新手需要关注以下几个要点:一是正确评估程序的正确性,不仅仅是结果正确,还需要逻辑正确;二是理解面向...

    积分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的想法不谋而合。况且,单向数据集特性速度...

    UniDAC 2.70 源码版本 (For Delphi2010)

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

    过来人对学习嵌入式linux开发的一点建议

    它可以帮助你理解操作系统的基本原理,如任务调度、内存管理、中断处理等,这些知识对于后续学习Linux会很有帮助。UCOS的简单性使得学习过程更为直观,有助于建立坚实的理论基础。 然后,选择Linux作为操作系统的...

    iOS App Programming Guide

    ### 关于 iOS 应用程序编程指南 #### 关键知识点概览 - **将初始想法转化为实施方案** - **UIKit 提供应用的核心功能** - **应用在前台与后台的行为差异** - **iCloud 对数据模型及 UI 层设计的影响** - **应用所...

    KnowledgeBase:Android 5.0的笔记应用程序

    10. **性能优化**:为了提供流畅的用户体验,应用需要进行内存管理、后台任务处理、图像优化等方面的优化,避免ANR(应用无响应)等问题。 以上就是基于Java的Android 5.0笔记应用开发的一些核心知识点,涵盖了从...

    OpenSSL-1_0_0d_Win32

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

    随心所欲

    2. **垃圾回收**:Go语言内置了自动垃圾回收机制,帮助开发者管理内存,防止内存泄漏,让程序员可以专注于代码逻辑。 3. **C-like性能**:Go语言的编译速度较快,生成的可执行文件体积小,运行速度快,接近于C/C++...

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

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

Global site tag (gtag.js) - Google Analytics