宝安网站建设方案外包制作相册app

bicheng/2026/1/22 16:04:46/文章来源:
宝安网站建设方案外包,制作相册app,成立公司要多少钱,网站建设的架构基础数据结构 ngx_int_t 32位操作系统4字节,64位操作系统8字节 解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型) typedef intptr_t ngx_int_t;#ifdef _WIN64 typedef __int64 intptr_t; #else typedef _…基础数据结构 ngx_int_t 32位操作系统4字节,64位操作系统8字节 解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型) typedef intptr_t ngx_int_t;#ifdef _WIN64 typedef __int64 intptr_t; #else typedef __int32 intptr_t; #endifngx_str_t 在Nginx的领域中ngx_str_t结构就是字符串。ngx_str_t的定义如下 ngx_str_t只有两个成员其中data指针指向字符串起始地址len表示字符串的有效长度。注意ngx_str_t的data成员指向的并不是普通的字符串 因为这段字符串未必会以’\0’作为结尾所以使用时必须根据长度len来使用data成员。 typedef struct {size_t len;u_char *data; } ngx_str_t;ngx_list_t ngx_list_t描述整个链表而ngx_list_part_t只描述链表的一个元素。这里要注意的是ngx_list_t不是一个单纯的链表为了便于理解我们姑且称它为存储数组的链表什么意思呢抽象地说就是每个链表元素ngx_list_part_t又是一个数组拥有连续的内存它既依赖于ngx_list_t里的size和nalloc来表示数组的容量同时又依靠每个ngx_list_part_t成员中的nelts来表示数组当前已使用了多少容量。因此ngx_list_t是一个链表容器而链表中的元素又是一个数组。事实上ngx_list_part_t数组中的元素才是用户想要存储的东西ngx_list_t链表能够容纳的元素数量由ngx_list_part_t数组元素的个数与每个数组所能容纳的元素相乘得到。 这样设计有什么好处呢 链表中存储的元素是灵活的它可以是任何一种数据结构。链表元素需要占用的内存由ngx_list_t管理它已经通过数组分配好了。小块的内存使用链表访问效率是低下的使用数组通过偏移量来直接访问内存则要高效得多。 成员以及成员意义 ngx_list_part_s:链表的每一个节点 elts:指向数组的起始地址。nelts:已经使用的容量next:下一个节点 ngx_list_t:链表类 part:首节点,注意:首节点存储的是一个结构体,而不是指针last:指向最后一个节点size:节点的elts数组中存储的数据类型的最大大小nalloc:链表的数组元素一旦分配后是不可更改的。nalloc表示每个ngx_list_part_t数组的容量即最多可存储多少个数据。pool:所属内存池,链表中管理内存分配的内存池对象。用户要存放的数据占用的内存都是由pool分配的 typedef struct ngx_list_part_s ngx_list_part_t;struct ngx_list_part_s { void *elts;ngx_uint_t nelts;ngx_list_part_t *next; };typedef struct {ngx_list_part_t *last; ngx_list_part_t part;size_t size;ngx_uint_t nalloc; ngx_pool_t *pool; } ngx_list_t;//创建链表 //n size分别对应ngx_list_t中的size和nalloc ngx_list_t *ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size);//链表初始化,在ngx_list_create会调用,无需自己调用 static ngx_inline ngx_int_t ngx_list_init(ngx_list_t *list, ngx_pool_t *pool, ngx_uint_t n, size_t size);//添加元素 void *ngx_list_push(ngx_list_t *list);ngx_table_elt_t ngx_table_elt_t就是一个key/value对ngx_str_t 类型的key、value成员分别存储的是名字、值字符串。 显而易见ngx_table_elt_t是为HTTP头部“量身订制”的其中key存储头部名称如Content-Lengthvalue存储对应的值如“1024” lowcase_key是为了忽略HTTP头部名称的大小写例如有些客户端发来的HTTP请求头部是content-lengthNginx希望它与大小写敏感的 Content-Length做相同处理有了全小写的lowcase_key成员后就可以快速达成目的了hash用于快速检索头部 typedef struct {ngx_uint_t hash;//通过key value字符串计算出的hash值ngx_str_t key;ngx_str_t value;u_char *lowcase_key;//存放的是本结构体中key的小写字母字符串 } ngx_table_elt_t;ngx_buf_t 缓冲区ngx_buf_t是Nginx处理大数据的关键数据结构它既应用于内存数据也应用于磁盘数据 ngx_buf_t是一种基本数据结构本质上它提供的仅仅是一些指针成员和标志位。对于HTTP模块来说需要注意HTTP框架、事件框架是如何设置和使用pos、last等指针以及如何处理这些标志位的上述说明只是最常见的用法。如果我们自定义一个ngx_buf_t结构体不应当受限于上述用法而应该根据业务需求自行定义。例如用一个ngx_buf_t缓冲区转发上下游TCP流时pos会指向将要发送到下游的TCP流起始地址而last会指向预备接收上游TCP流的缓冲区起始地址。 成员以及成员意义 pos:指向从内存池里分配的内存。 pos为已扫描的内存端中还未解析的内存的尾部last:last通常表示有效的内容到此为止file_pos:将要处理的文件位置file_last:截止的文件位置start:指向ngx_buf_t的起始地址end:与start成员对应指向缓冲区内存的末尾tag:表示当前缓冲区的类型例如由哪个模块使用就指向这个模块ngx_module_t变量的地址file:引用的文件 用于存储接收到所有包体后把包体内容写入到file文件中shadow:当前缓冲区的影子缓冲区该成员很少用到temporary:临时内存标志位为1时表示数据在内存中且这段内存可以修改memory:标志位为1时表示数据在内存中且这段内存不可以被修改mmap:标志位为1时表示这段内存是用mmap系统调用映射过来的不可以被修改recycled:标志位为1时表示可回收利用当该buf被新的buf指针指向的时候就置1in_file:标志位为1时表示这段缓冲区处理的是文件而不是内存说明包体全部存入文件中flush:标志位为1时表示需要执行flush操作 标示需要立即发送缓冲的所有数据sync:标志位,0同步,1异步last_buf:标志位表示是否是最后一块缓冲区因为ngx_buf_t可以由ngx_chain_t链表串联起来因此当last_buf为1时表示当前是最后一块待处理的缓冲区last_in_chain:标志位表示是否是ngx_chain_t中的最后一块缓冲区last_shadow:标志位表示是否是最后一个影子缓冲区与shadow域配合使用。通常不建议使用它temp_file:标志位表示当前缓冲区是否属于临时文件num:读取后端服务器包体分配的第几个buf typedef void * ngx_buf_tag_t; typedef struct ngx_buf_s ngx_buf_t;struct ngx_buf_s {//它的pos成员和last成员指向的地址之间的内存就是接收到的还未解析的字符流u_char *pos;u_char *last;//处理文件时file_pos与file_last的含义与处理内存时的pos与last相同off_t file_pos;off_t file_last;//如果ngx_buf_t缓冲区用于内存那么start指向这段内存的起始地址u_char *start;u_char *end;ngx_buf_tag_t tag;ngx_file_t *file;ngx_buf_t *shadow;unsigned temporary:1; unsigned memory:1;unsigned mmap:1;unsigned recycled:1; unsigned in_file:1;unsigned flush:1;unsigned sync:1;unsigned last_buf:1; unsigned last_in_chain:1;unsigned last_shadow:1; unsigned temp_file:1;/* STUB */ int num; };ngx_chain_t ngx_chain_t是与ngx_buf_t配合使用的链表数据结构 buf指向当前的ngx_buf_t缓冲区next则用来指向下一个ngx_chain_t。如果这是最后一个ngx_chain_t则需要把next置为NULL。 struct ngx_chain_s {ngx_buf_t *buf;ngx_chain_t *next; };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国际外贸网站推广二维码制作生成器

MyBatis 支持一对一,一对多,多对多查询。XML 文件和注解都能实现关系的操作。多对多实质就是一对多 1. 表关系的维护 1.1 One一对一 一对一查询和多表(两表)查询很相似, 都能查询两表的全部属性 区别是一对一可以在对象中嵌套对象, 呈现包含关系; 多表…

企业网站系统官网网站 添加备案号

[html] 前端需要注意哪些SEO? 合理的title,description,keyswords 搜索引擎对这三项的权重逐个减小,title 值强调重点即可,重要的关键词出现不要超过两次,而且要靠前。2 、不同页面的tilte要有所不同;desc…

有个人做网站的吗云南旅游网站建设公司

《[含文档PPT源码等]精品Nodejs实现的校园疫情防控管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功! 软件开发环境及开发工具: 操作系统:Windows 10、Windows 7、Win…

贸易网站源码中国最好的网络营销公司

Chrony 是一款开源的网络时间协议(NTP)客户端和服务端软件,旨在提供高精度的时间同步功能。相较于传统的 NTP 实现如 ntpd,Chrony 提供了一些改进和优势,包括更快的同步速度、低延迟、低CPU占用和低内存消耗。以下是 Chrony 的几个关键特性和…

网站建设经理岗位职责网页设计公司企业文化怎么写

【引言】 HarmonyOS中加载网络图片常用的方法是直接给Image组件添加图片的网络地址,申请网络权限ohos.permission.INTERNET后就可以通过url加载对应的图片了,如HarmonyOS官网中的写法: Image(https://www.example.com/example.JPG) 【问题概…

胡芦娃app软件下载网站服装电子商务网站有哪些

1、Go 1.3之前的标记-清除(mark and sweep)算法 Go 1.3之前的时候主要用的是普通的标记-清除算法,此算法主要由两个主要的步骤: 标记(Mark phase)清除(Sweep phase) 1&#xff09…

网站系统建设预算网站优化应该怎么做

服务认证基础考试大纲(第1版) 1.总则 本大纲依据 CCAA《服务认证审查员注册准则》制定,适用于拟向CCAA申请注册服务认证审查员级别的人员。 2.考试要求 2.1考试科目 申请注册服务认证审查员级别的人员,需通过“服务认证基础”…

做一个个人主页的网站怎么做古城网站建设

写在前:在前篇的两篇博客介绍中我们主要学习软件测试的相关概念,对软件测试进行了初步的了解,本篇博客将进一步进行学习。重点内容包括:软件测试的生命周期、如何描述一个bug、如何定义bug的级别、bug的生命周期以及在实际工作中如…

做商城网站需要备案什么域名对外宣传推广方案

1. 线性回归算法 线性回归是一种用于预测连续数值的监督学习算法。以下是使用Python和scikit-learn库实现线性回归的示例代码: import numpy as np from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from…

wordpress两个站点煤棚网架加工厂

题目链接 最小高度树 思路:本质上是找到树中的最长路径。当最长路径上中间点(若路经长为偶数,则中间点仅有一个,否者中间点有两个)作为根时,此时树高最小。 Code: class Solution { public://拓扑排序int…

徐州市做网站wordpress+编辑器回车

440. 字典序的第K小数字 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 109。 示例 : 输入: n: 13 k: 2 输出: 10 解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是…

如何制作自己的网站?专业网站建站公司

数组指针:数据类型 (*数组指针变量名)[列宽];特点:1、本质上是一个指针类型的变量;2、指向的是一个二维数组,即数组指针的列宽等价于二维数组的列宽;例如: int array[2][5] {1,2,3,4,5,6,7,8,9…

化妆品销售网站的源代码东莞做网页

功能优化 【主机】裸金属详情页增加部分属性信息【监控】优化告警策略,支持同时设置多监控指标【主机】支持透传设备自动探测【主机】LVM 块存储支持快照【监控】简化 Telegraf 容器的挂载点【主机】新建 VMware 支持同时填写备注信息【存储】KVM 支持对接 LVM 存储…

深圳网站开发平台星速浏览器

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ 哈咯各位铁汁们,大家新年过得快乐吗?反正大伟是过得很快乐,天天就是玩玩玩…

做平面免费接单网站收费的网站如何免费

在使用ElementUI的Backtop回到顶部组件时&#xff0c;单独复制这一行代码 <el-backtop :right"100" :bottom"100" /> 发现页面在向下滚动时&#xff0c;并未出现Backtop组件。 可从以下3个方向进行分析&#xff1a; 指定target属性&#xff0c;且…

win7 iis建立网站正邦网站建设 优帮云

Context 上下文context.Context 是用来设置截止时间、同步信号&#xff0c;传递请求相关值的结构体。 context.Context 定义了四个需要实现的方法&#xff1a; Deadline: 返回 context.Context 被取消的时间。Done: 返回一个 Channel&#xff0c;这个 Channel 会在当前工作完…

微信小程序怎么制作网页网站优化个人工作室

今年前前后后也遇到了不少软件项目&#xff0c;想来想去还是拒绝了其中的大部分项目&#xff0c;当然也有一部分是客户拒绝我的&#xff0c;把这些经验教训分享给大家&#xff0c;一起探讨探讨&#xff0c;接了项目很容易深陷泥潭&#xff0c;累得死去活来不值得。拒绝软件项目…

如何推广网站话术工业设计网站外网

一、简介 在文件中统计出现最多个数的单词&#xff0c;将其输出到hdfs文件上。 二、例子 &#xff08;1&#xff09;实例描述 给出三个文件&#xff0c;每个文件中都若干个单词以空白符分隔&#xff0c;需要统计出现最多的单词 …

做动画相册在哪个网站好织梦网站管理安装

image 标签添加 mode"widthFix" <image mode"widthFix" :src"detailData.coverImageURL" />image 标签添加样式 image {width: 100%;height: auto; }

如何建开发手机网站婚纱网站怎么做

工业显示器是智能制造领域应用比较广泛的电子产品&#xff0c;它广泛应用于工厂产线以及各种配套设备&#xff0c;在很大程度上提升了工厂的生产效率。 工业显示器按触摸方式分&#xff0c;可以分为工业触摸显示器和非触摸工业显示器两种;按使用环境分&#xff0c;又可以分为室…