`
文章列表
LAMP 关键数据集锦技术选项参考 源自日积月累自己的其他人的经验总结 负载均衡 LVS工作在四层,内核态,性能极高,有VIP功能,配合 keepalived 做有效的 心跳检查和负载均衡安装配置麻烦,HAProxy工作在四层到七层,功能强大,有VIP功能,配置简单,CPU占用高Nginx工作在七层,应用层功能多,配置简单,无法支持VIP功能负载均衡器测试数据软件 每秒并发量 CPU占用 结论LVS (DR模式) 1.6W25%性能综合比最好,配置复杂HAProxy 2.3W 95% 转发快,CPU占用高,配置简单Nginx2W 80% 转发没有haproxy快,CPU比hapro ...
Android软件开发之制作第三方数据库与读取文件中数据库详解 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/199 好久都没有更新Android开发系列博文了,不知道大伙还能都记得我这个老朋友,嘿嘿。其实这段时间Android的开发我也一直都没有闲着,Android + IOS + Unity 的游戏与软件开发MOMO都在同时进行,给力的生活还是继续这儿。希望过段时间有机会可以尝试制作一些WP7下的游戏或软件的开发。 Android软件开发中为什么要制
Three20软件引擎之结合第三方FMDB框架操作数据库详解 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/638 开始本章之间,首先了解一下FMDB,它是一个老外写的第三方操作数据库的框架。因为IOS官方提供操作数据库的方法似乎不是那么近人而意,使用起来有点麻烦,所以这个老外哥们就将官方提供的方法又包了一层,它封装的方法非常浅,并没有多莫高深,只是更方便开发使用,我看了一下大概核心的代码500多行吧。下面开始学习它,首先需要将源码下载至本地,这哥们将代码上传至GitHu ...
用C语言写PHP扩展 1:预定义 在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def 内容是你希望定义的函数名以及参数: int a(int x,int y)string b(string str,int n)2:到php源码目录的ext目录#cd /usr/local/php-5.4.0/ext/执行命令,生成对应扩展目录#./ext_skel --extname=caleng_module --proto=/home/hm/caleng_module.def 3:修改config.m4 去掉dnl的注释 PHP_ARG_ENABLE(caleng_mod ...
http://www.gnu.org/software/gawk/manual/gawk.html 1。 shell quoting rules Quoted items can be concatenated with nonquoted items as well as with other quoted items. The shell turns everything into one argument for the command. Preceding any single character with a backslash (‘\’) quotes that chara ...
1。 函数调用的顺序 (gdb) bt #0 pci_arch_init () at arch/x86/pci/init.c:13 #1 0xc1001255 in do_one_initcall (fn=0xc17a3afa <pci_arch_init>) at init/main.c:758 #2 0xc176c963 in do_initcalls (unused=<value optimized out>) at init/main.c:788 #3 do_basic_setup (unused=<value optimized out>) ...
ngx_buf.{c|h}分为两种类型,一种是file,一种是memory。因此这里会有文件的一些操作域。 typedef void * ngx_buf_tag_t; typedef struct ngx_buf_s ngx_buf_t; struct ngx_buf_s { u_char *pos; //已经执行的数据位置 u_char ...
ngx_buf.{c|h}分为两种类型,一种是file,一种是memory。因此这里会有文件的一些操作域。 typedef void * ngx_buf_tag_t; typedef struct ngx_buf_s ngx_buf_t; struct ngx_buf_s { u_char *pos; //已经执行的数据位置 u_char ...
ngx_list.{c|h}结构非常简单,如果你看过之前的array介绍,这一节可以一带而过: 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 ...
ngx_list.{c|h}结构非常简单,如果你看过之前的array介绍,这一节可以一带而过: 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 ...
ngx_hash.{c|h}实现了nginx里面比较重要的一个hash结构,这个在模块配置解析里经常被用到。该hash结构是只读的,仅在初始创建时可以给出保存在其中的key-val对儿,然后就只能进行“增删改查”操作了。 先来看一下hash结构的内存布 ...
ngx_hash.{c|h}实现了nginx里面比较重要的一个hash结构,这个在模块配置解析里经常被用到。该hash结构是只读的,仅在初始创建时可以给出保存在其中的key-val对儿,然后就只能进行“增删改查”操作了。 先来看一下hash结构的内存布 ...
src/core/ngx_queue.{c|h}实现了一个队列的操作逻辑,队列的基本结构为一个双向队列 基础数据结构为: typedef struct ngx_queue_s ngx_queue_t; struct ngx_queue_s { ngx_queue_t *prev; ngx_queue_t *next; }; 根据数据结构可以发现,nginx的队列操作和结构只进行指针操作,不负责节点内容空间的分配和保存,所以在定义自己的队列节点的时候,需要自己定义数据结构以及分配空间,并包含一个ngx_queue_t类型的成员,需要获得原始的数据节点的时候,需要 ...
src/core/ngx_queue.{c|h}实现了一个队列的操作逻辑,队列的基本结构为一个双向队列 基础数据结构为: typedef struct ngx_queue_s ngx_queue_t; struct ngx_queue_s { ngx_queue_t *prev; ngx_queue_t *next; }; 根据数据结构可以发现,nginx的队列操作和结构只进行指针操作,不负责节点内容空间的分配和保存,所以在定义自己的队列节点的时候,需要自己定义数据结构以及分配空间,并包含一个ngx_queue_t类型的成员,需要获得原始的数据节点的时候,需要 ...
对应文件为core/ngx_array.{c|h} ngx_array是nginx内部封装的,使用ngx_pool_t对内存池进行分配的数组容器,其中的数据是在一整片内存区中连续存放的。更新数据时只能在尾部压入1个或多个元素。这里单纯的觉得和数组没有差别。 数组的实现结构为: struct ngx_array_s { void *elts; //具体的数据区域的指针 ngx_uint_t nelts; //数组实际包含的元素数量 size_t size; //数组单个元素的大小 ngx_uint_t nal ...
Global site tag (gtag.js) - Google Analytics