慢读nginx(1)strerror
来源:互联网 发布:淘宝分销代销的区别 编辑:程序博客网 时间:2024/05/22 08:19
strerror是获取错误码对应的错误字符串的工具,nginx为了提高效率,把错误码和对应的描述保存在了静态的表里面,使用的时候,只需用到访问数据下标,就能快速读取到错误码信息。
nginx系统初始化之后,第一件事就是初始化strerror。首先初始化了一个static的指针指向了一块大小为NGX_SYS_NERR*seizeof(ngx_str_t)的内存。
typedef struct {
size_t len;
u_char *data;
} ngx_str_t;
ngx_str_t这个结构,是由长度和指向该长度的数据的指针组成的。
for (err = 0; err < NGX_SYS_NERR; err++) { msg = strerror(err); len = ngx_strlen(msg); p = malloc(len); if (p == NULL) { goto failed; } ngx_memcpy(p, msg, len); ngx_sys_errlist[err].len = len; ngx_sys_errlist[err].data = p; }
然后遍历strerror的值,并把该error的值和对应的字符串信息保存进ngx_sys_errlist.
使用的时候,根据读取信息的只在数据里面查找到对应的字符串指针。
ps:看了几篇ngint的相关blog之类,都说nginx尽量减少使用内存copy,从这里也能看出来一斑。
初始化一次,然后尽量引用这个初始化的信息。
0 0
- 慢读nginx(1)strerror
- strerror
- strerror
- strerror
- strerror
- strerror()
- 1-6例示strerror和perror
- APUE 1-8 strerror 和 perror
- strerror()函数
- strerror() 函数
- strerror函数
- strerror(errno)
- strerror函数
- strerror, strerror_r
- strerror函数
- c strerror
- 备忘:nginx+tomcat 访问速度慢
- nginx记录网站慢请求(ngx_http_log_request_speed)
- Linux中的内存管理
- Machine Learning
- trac初探
- Sicily 1192. Guardian of Decency
- xmpp12 获取好友
- 慢读nginx(1)strerror
- EditText 中在在光标位置添加 文本 或 图片
- Linux Swap分区删除方法
- 【codeforces #278(div 1)】ABCD题解
- CentOS设置服务开机启动的方法
- Hibernate关系映射讲解
- Android中的Handler的具体用法
- week3note函数
- 关于在VS2012下opencv+QT出现“无法解析的外部命令”问题的解决方案