E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Muduo源代码分析
Glibc内存管理--ptmalloc2
源代码分析
(十九)
5.5.2ptmalloc_init()函数ptmalloc_init()函数比较长,将分段对这个函数做介绍。staticvoidptmalloc_init(void){#if__STD_Cconstchar*s;#elsechar*s;#endifintsecure=0;if(__malloc_initialized>=0)return;__malloc_initialized=0;首先检查全局
iteye_7858
·
2011-05-30 17:24
Glibc内存管理--ptmalloc2
源代码分析
(十九)
5.5.2 ptmalloc_init()函数 ptmalloc_init() 函数比较长,将分段对这个函数做介绍。 static void ptmalloc_init (void) { #if __STD_C const char* s; #else char* s; #endif int secure = 0;
mqzhuang
·
2011-05-30 17:00
thread
多线程
linux
配置管理
Access
Glibc内存管理--ptmalloc2
源代码分析
(十八)
5.5 Ptmalloc初始化 Ptmalloc的初始化发生在进程的第一个内存分配请求,当 ptmalloc 的初始化一般都在用户的第一次调用 malloc() 或 remalloc() 之前,因为操作系统和 Glibc 库为进程的初始化做了不少工作,在用户分配内存以前, Glibc 已经分配了多次内存。 在 ptmalloc 中 malloc() 函数的实际接口函数为
mqzhuang
·
2011-05-30 17:00
C++
c
工作
C#
Glibc内存管理--ptmalloc2
源代码分析
(十七)
5.4配置选项Ptmalloc的配置选项不多,在3.2.6节已经做过概要描述,这里给出mallopt()函数的实现:#if__STD_CintmALLOPt(intparam_number,intvalue)#elseintmALLOPt(param_number,value)intparam_number;intvalue;#endif{mstateav=&main_arena;intres=1
iteye_7858
·
2011-05-30 17:29
Glibc内存管理--ptmalloc2
源代码分析
(十七)
5.4 配置选项 Ptmalloc的配置选项不多,在 3.2.6 节已经做过概要描述,这里给出 mallopt() 函数的实现: #if __STD_C int mALLOPt(int param_number, int value) #else int mALLOPt(param_number, value) int param_number; int value
mqzhuang
·
2011-05-30 17:00
thread
配置管理
Glibc内存管理--ptmalloc2
源代码分析
(十六)
5.3核心结构体分析每个分配区是structmalloc_state的一个实例,ptmalloc使用malloc_state来管理分配区,而参数管理使用structmalloc_par,全局拥有一个唯一的malloc_par实例。5.3.1malloc_statestuctmalloc_state的定义如下:structmalloc_state{/*Serializeaccess.*/mutex_
iteye_7858
·
2011-05-30 17:21
Glibc内存管理--ptmalloc2
源代码分析
(十六)
5.3 核心结构体分析 每个分配区是 struct malloc_state 的一个实例, ptmalloc 使用 malloc_state 来管理分配区,而参数管理使用 struct malloc_par ,全局拥有一个唯一的 malloc_par 实例。 5.3.1 malloc_state
mqzhuang
·
2011-05-30 17:00
thread
cache
Access
UP
Glibc内存管理--ptmalloc2
源代码分析
(十五)
5.2.3Unsortedbin Unsortedbin可以看作是smallbins和largebins的cache,只有一个unsortedbin,以双向链表管理空闲chunk,空闲chunk不排序,所有的chunk在回收时都要先放到unsortedbin中,分配时,如果在unsortedbin中没有合适的chunk,就会把unsortedbin中的所有chunk分别加入到所属的bi
mqzhuang
·
2011-05-30 16:00
cache
Glibc内存管理--ptmalloc2
源代码分析
(十四)
.2.2 Large bins 在 SIZE_SZ 为 4B 的平台上,大于等于 512B 的空闲 chunk ,或者,在 SIZE_SZ 为 8B 的平台上,大小大于等于 1024B 的空闲 chunk ,由 sorted bins 管理。 Large bins 一共包括 63 个 bin ,每个 bin 中的 chunk 大小不是一个固定公差的等差数列,而是分成 6
mqzhuang
·
2011-05-30 16:00
malloc
Glibc内存管理--ptmalloc2
源代码分析
(十三)
5.2分箱式内存管理对于空闲的chunk,ptmalloc采用分箱式内存管理方式,根据空闲chunk的大小和处于的状态将其放在四个不同的bin中,这四个空闲chunk的容器包括fastbins,unsortedbin,smallbins和largebins。Fastbins是小内存块的高速缓存,当一些大小小于64字节的chunk被回收时,首先会放入fastbins中,在分配小内存时,首先会查看f
mqzhuang
·
2011-05-30 15:00
编程
Glibc内存管理--ptmalloc2
源代码分析
(十二)
源代码分析
分主要对源代码实现技巧的细节做分析,希望能进一步理解 ptmalloc 的实现,做到终极无惑。
mqzhuang
·
2011-05-30 15:00
多线程
linux
算法
Access
GLIBC strlen
源代码分析
GLIBCstrlen
源代码分析
-[语言探索]Tag:语言探索版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://bigwhite.blogbus.com/logs/37753065
wanwenweifly4
·
2011-05-29 20:00
Muduo
网络编程示例之九:简单的消息广播服务
Muduo
网络编程示例之九:简单的消息广播服务陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
网络编程示例
·
2011-05-25 23:00
网络编程
Muduo
网络编程示例之九:简单的消息广播服务
Muduo
网络编程示例之九:简单的消息广播服务陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
网络编程示例
Solstice
·
2011-05-25 23:00
编程
网络
tcp
SOAP
聊天
library
Muduo
网络编程示例之九:简单的消息广播服务
Muduo
网络编程示例之九:简单的消息广播服务
Muduo
网络编程示例之九:简单的消息广播服务陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn
陈硕的Blog
·
2011-05-25 23:00
memcache 的
源代码分析
转:http://blog.csdn.net/chinalinuxzend/archive/2008/07/26/2716403.aspx1.关于本文档 本文档所有的分析都是在1.2版本之上,偶尔会提到比较1.1版本.其他版本没有阅读. 一个星期时间的工作,不可能对memcache有很深刻的分析.文档本身的目的在于为以后的研究准备一个总结资料.刚接触memcache时,对其设计分布式的
enetor
·
2011-05-24 23:00
数据结构
算法
应用服务器
网络应用
网络协议
RTSP服务器实例live555
源代码分析
1.RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer::incom
maikforever
·
2011-05-24 14:00
windows
socket
服务器
任务调度
代码分析
h.264
velocity
源代码分析
Velocity就是一个template引擎,或是代码生成器。 由template,engine,context组成。 1. 首先创建一个template(如果是用在web上就是一个html文件),将需要参数化或实例化的地方用跟context有关的符号标记出来,标记时使用velocity template language。而template应该可以是任意的文本。 2. 给context设定一些值
san_yun
·
2011-05-23 10:00
html
log4j
Web
velocity
ArrayList
源代码分析
ArrayList的底层实现是数组 1.构造函数publicArrayList(){ this(10);}publicArrayList(intinitialCapacity){ super();//默认可以不写 if(initialCapacitytrue(asspecifiedby{@linkCollection#add}) */publicbooleanadd(Ee
zhouyong0
·
2011-05-17 15:00
object
list
null
代码分析
RTSP服务器实例live555
源代码分析
1.RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer::incom
maikforever
·
2011-05-17 10:00
MTD原始设备与FLASH硬件驱动的对话
MTD原始设备与FLASH硬件驱动的对话看了<<LinuxMTD
源代码分析
>>后对以MTD的分层结构以及各层的分工情况有了大致的了解,然而各层之间是如何进行对话的呢,对于这个问题
yzd
·
2011-05-17 09:00
Flash
MTD源码分析(1)
LinuxMTD
源代码分析
byjimzeusvision0.1IfyougotanyProblem,Suggestion,AdviceorQuestion,Pleasemailto:
[email protected]
SdustLiYang
·
2011-05-17 08:00
struct
Flash
table
null
callback
structure
MTD源码分析(1)
<p><span style="font-size: medium;">Linux MTD
源代码分析
</span> <br> by
yzd
·
2011-05-17 08:00
源码分析
muduo
学习笔记2
muduo
学习笔记2在服务器端,既需要维护连接的信息,连接发生变化时,还应能通知上面应用层,因此对于事件驱动的服务器,会有各种回调。
雨前
·
2011-05-09 23:00
Muduo
网络编程示例之八:用 Timing wheel 踢掉空闲连接
Muduo
网络编程示例之八:Timingwheel踢掉空闲连接陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是
Solstice
·
2011-05-04 21:00
数据结构
编程
timer
server
网络
buffer
Muduo
网络编程示例之八:用 Timing wheel 踢掉空闲连接
Muduo
网络编程示例之八:用Timingwheel踢掉空闲连接
Muduo
网络编程示例之八:Timingwheel踢掉空闲连接陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice
陈硕的Blog
·
2011-05-04 21:00
Muduo
网络编程示例之七:“串并转换”连接服务器及其自动化测试
Muduo
网络编程示例之七:连接服务器及其自动化测试陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
·
2011-05-02 19:00
自动化测试
Muduo
网络编程示例之七:“串并转换”连接服务器及其自动化测试
Muduo
网络编程示例之七:连接服务器及其自动化测试陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
Solstice
·
2011-05-02 19:00
多线程
编程
网络
服务器
测试
groovy
Muduo
网络编程示例之七:“串并转换”连接服务器及其自动化测试
Muduo
网络编程示例之七:“串并转换”连接服务器及其自动化测试
Muduo
网络编程示例之七:连接服务器及其自动化测试陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice
陈硕的Blog
·
2011-05-02 19:00
C/C++字符串使用军规
C/C++字符串使用军规 1.概述本文对常见的C++string使用方式进行了测试,并结合
源代码分析
,总结出如何高效的使用C++string对象。
yah99_wolf
·
2011-05-01 15:00
String
测试
gcc
basic
语言
代码分析
比较全的hadoop分析,备用
Hadoop
源代码分析
(1)overview http://caibinbupt.javaeye.com/blog/262412 Hadoop
源代码分析
(2)package http://caibinbupt.javaeye.com
杨俊华
·
2011-04-29 15:00
hadoop
应用服务器
Blog
网络应用
网络协议
Muduo
网络编程示例之六:限制服务器的最大并发连接数
Muduo
网络编程示例之六:限制服务器的最大并发连接数陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
Solstice
·
2011-04-27 00:00
编程
网络
server
File
服务器
Descriptor
Muduo
网络编程示例之六:限制服务器的最大并发连接数
Muduo
网络编程示例之六:限制服务器的最大并发连接数陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
·
2011-04-27 00:00
网络编程
Muduo
网络编程示例之六:限制服务器的最大并发连接数
Muduo
网络编程示例之六:限制服务器的最大并发连接数
Muduo
网络编程示例之六:限制服务器的最大并发连接数陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn
陈硕的Blog
·
2011-04-27 00:00
WebKit中的html词法解析
WebKit中的html词法解析
[email protected]
摘要:webkit
源代码分析
,webcore,html解析,htmlparse,htmltoken,htmltokenizer
yangzhu1982
·
2011-04-26 16:00
html
文档
webkit
token
character
代码分析
WebKit 内核
源代码分析
( 四 )
WebKit内核
源代码分析
(四)红心地瓜(
[email protected]
)摘要:本文介绍WebCore中Loader模块是如何加载资源的,分主资源和派生资源分析loader模块的类关系。
dlmu2001
·
2011-04-26 10:00
cache
HashMap
webkit
callback
NetWork
代码分析
WebKit 内核
源代码分析
( 四 )
WebKit内核
源代码分析
(四)红心地瓜(
[email protected]
)摘要:本文介绍WebCore中Loader模块是如何加载资源的,分主资源和派生资源分析loader模块的类关系。
红心地瓜
·
2011-04-26 10:00
WebKit内核源代码分析
浏览器技术
Glibc内存管理--ptmalloc2
源代码分析
(十一)
4.问题分析及解决通过前面几节对ptmalloc实现的粗略分析,尝试去分析和解决我们遇到的问题,我们系统遇到的问题是glibc内存暴增,现象是程序已经把内存返回给了Glibc库,但Glibc库却没有把内存归还给操作系统,最终导致系统内存耗尽,程序因为OOM被系统杀掉。请参考3.2.2节对ptmalloc的设计假设与3.2.7节对ptmalloc的使用注意事项,原因有如下几点:在64位系统上使用默认
iteye_7858
·
2011-04-24 16:16
Glibc内存管理--ptmalloc2
源代码分析
(十一)
4. 问题分析及解决 通过前面几节对ptmalloc实现的粗略分析,尝试去分析和解决我们遇到的问题,我们系统遇到的问题是glibc内存暴增,现象是程序已经把内存返回给了Glibc库,但Glibc库却没有把内存归还给操作系统,最终导致系统内存耗尽,程序因为OOM被系统杀掉。 请参考3.2.2节对ptmalloc的设计假设与3.2.7节对ptmalloc的使用注意事项,原因有如下几点:
mqzhuang
·
2011-04-24 16:00
cache
配置管理
网络应用
NoSQL
Glibc内存管理--ptmalloc2
源代码分析
(十)
3.2.7使用注意事项为了避免Glibc内存暴增,使用时需要注意以下几点:后分配的内存先释放,因为ptmalloc收缩内存是从topchunk开始,如果与topchunk相邻的chunk不能释放,topchunk以下的chunk都无法释放。Ptmalloc不适合用于管理长生命周期的内存,特别是持续不定期分配和释放长生命周期的内存,这将导致ptmalloc内存暴增。如果要用ptmalloc分配长周期
iteye_7858
·
2011-04-24 16:36
Glibc内存管理--ptmalloc2
源代码分析
(十)
3.2.7 使用注意事项 为了避免Glibc内存暴增,使用时需要注意以下几点: 后分配的内存先释放,因为ptmalloc收缩内存是从top chunk开始,如果与top chunk相邻的chunk不能释放,top chunk以下的chunk都无法释放。 Ptmalloc不适合用于管理长生命周期的内存,特别是持续不定期分配和释放长生命周期的内存,这将导致ptmallo
mqzhuang
·
2011-04-24 16:00
多线程
Google
配置管理
Glibc内存管理--ptmalloc2
源代码分析
(九)
3.2.6 配置选项概述 Ptmalloc主要提供以下几个配置选项用于调优,这些选项可以通过mallopt()进行设置: 1. M_MXFAST M_MXFAST用于设置fast bins中保存的chunk的最大大小,默认值为64B,fast bins中保存的chunk在一段时间内不会被合并,分配小对象时可以首先查找fast bins,如果fast b
mqzhuang
·
2011-04-24 16:00
thread
linux
配置管理
Glibc内存管理--ptmalloc2
源代码分析
(八)
3.2.5 内存回收概述 free() 函数接受一个指向分配区域的指针作为参数,释放该指针所指向的chunk。而具体的释放方法则看该chunk所处的位置和该chunk的大小。free()函数的工作步骤如下: free()函数同样首先需要获取分配区的锁,来保证线程安全。 判断传入的指针是否为0,如果为0,则什么都不做,直接return。否则转下一步。 判断
mqzhuang
·
2011-04-24 16:00
工作
Glibc内存管理--ptmalloc2
源代码分析
(七)
3.2.4 内存分配概述 分配算法概述,以32系统为例,64位系统类似。 小于等于64字节:用pool算法分配。 64到512字节之间:在最佳匹配算法分配和pool算法分配中取一种合适的。 大于等于512字节:用最佳匹配算法分配。 大于等于mmap分配阈值(默认值128KB):根据设置的mmap的分配策略进行分配,如果没有开启m
mqzhuang
·
2011-04-24 16:00
算法
Glibc内存管理--ptmalloc2
源代码分析
(六)
3.2.3.4 sbrk与mmap 从进程的内存布局可知,.bss 段之上的这块分配给用户程序的空间被称为heap (堆)。start_brk指向heap的开始,而brk指向heap的顶部。可以使用系统调用brk()和sbrk()来增加标识heap顶部的brk值,从而线性的增加分配给用户的heap空间。在使malloc之前,brk的值等于start_brk,也就是说heap大小为0
mqzhuang
·
2011-04-24 16:00
malloc
Glibc内存管理--ptmalloc2
源代码分析
(五)
3.2.3内存管理数据结构概述3.2.3.1 Main_arena与non_main_arena在DougLea实现的内存分配器中只有一个主分配区(mainarena),每次分配内存都必须对主分配区加锁,分配完成后释放锁,在SMP多线程环境下,对主分配区的锁的争用很激烈,严重影响了malloc的分配效率。于是WolframGloger在DougLea的基础上改进使得Glibc的malloc可以支持
mqzhuang
·
2011-04-24 15:00
thread
多线程
数据结构
RSuite 3.5.4 的查询功能
源代码分析
及修改
1. Bucketsize 代表 rsuite.search.bucketSize within rsuite.properties. com.reallysi.rsuite.system.search.BaseReferencedByFilter.referencedMOs 存放了经过search scope过滤的来自于CA结果集的MO id maxHits 控制CA过滤容器里的结果集数
7wolfs
·
2011-04-20 16:00
源代码
Muduo
网络编程示例之五: 测量两台机器的网络延迟
Muduo
网络编程示例之五:测量两台机器的网络延迟陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
·
2011-04-20 09:00
网络编程
Muduo
网络编程示例之五: 测量两台机器的网络延迟
Muduo
网络编程示例之五:测量两台机器的网络延迟陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn/giantchen这是《
Muduo
Solstice
·
2011-04-20 09:00
编程
网络
server
tcp
callback
Codec
Muduo
网络编程示例之五: 测量两台机器的网络延迟
Muduo
网络编程示例之五:测量两台机器的网络延迟
Muduo
网络编程示例之五:测量两台机器的网络延迟陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice t.sina.com.cn
陈硕的Blog
·
2011-04-20 09:00
上一页
80
81
82
83
84
85
86
87
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他