自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(147)
  • 资源 (17)
  • 收藏
  • 关注

原创 panic & recover

开场白深入理解 Go panic and recover谈谈 panic 和 recover 的原理注:上面的链接的文章非常棒,需要大家看完链接文章后,才能往下看第一个例子假如你看明白了上述的文章,那我举两个例子:packagemainimport("fmt")funcmain(){ fmt.Println("ok1"...

2019-06-03 10:26:19 228

原创 openresty 总结

     本文不是要介绍如何使用openresty,这类文章太多,大家可以随手找到,今天我想一步一步引入大家去深究openresty的实现过程。这样对大家的使用会更加深刻。     首先openresty是基于nginx+lua的,大家有没有去想过nginx和lua是如何结合的?也就是nginx为什么会执行lua代码?这也是我想第一给大家介绍的内容,nginx是c写的web服务,所以nginx...

2018-12-08 20:29:34 783

原创 golang问题总结

//author: ysqi ,https://yushuangqi.compackage mainimport ( "fmt")func sliceModify(slice []int) { // slice[0] = 88 slice[0] = 1000 slice = append(slice, 6)}func modify(array []int) { ar...

2018-04-23 15:21:17 490

转载 Linux c 开发 - Autotools使用详细解读

转自:http://blog.csdn.net/initphp/article/details/43705765关于Autotools我们前面的章节中已经讲到了Makefile的使用(点击进入查看文章)。我们知道在Linux下面如果编译一个比较大型的项目,我们可以通过Makefile的方式来完成。但是,我们又蛋疼了,Makefile拥有复杂的语法结构,甚至让

2017-10-11 10:16:22 380

转载 Linux c 开发 - Makefile工具

转自:http://blog.csdn.net/initphp/article/details/7692923Makefile是一个c语言的编译工具。如果学过Java,可能会认识Maven工具,makefile也是类似的工作。Makefile能帮助c语言建立自动化的编译。一旦写好,执行一个make命令就可以编译整个工程。当然编写Makefile文件的时候有很多知识点在里

2017-10-11 10:14:38 363

原创 fastdfs总结

1 storage启动后会进行全量同步,由traceker分配src_id,  当指定的src_id通过心跳发现需要同步后开启线程全量同步2 storage启动后会针对storage开启n个数量的线程进行同步,采用push的方式,由源发起向目的推送3 从头到尾storage的一切信息都是通过tracker获取

2017-07-18 15:15:38 515

转载 InfluxDB详解之TSM存储引擎解析(二)

InfluxDB详解之TSM存储引擎解析(二)上一篇文章主要介绍了 TSM 存储引擎一些相关的概念、组件以及数据存储的目录结构,文件组成结构等内容。这一篇将会尽量从 InfluxDB 源码的角度,深入讲解数据插入、查询、合并等操作的具体流程以及内部数据结构的设计。上一篇文章传送门: 『InfluxDB详解之TSM存储引擎解析(一)』。主要数据结构InfluxDB

2017-07-13 15:08:22 2259

原创 influxdb总结

上一篇转载的文章非常经典,接下来补充几点cmd.Run -> s.Open() -> s.TSDBStore.Open() -> loadShards -> (s *Shard) Open()//遍历data目录,把所有的db文件遍历出来for _, db := range dbDirs { //遍历策略文件夹 for _, rp := range rpDirs { //遍历share

2017-07-13 14:01:51 795

转载 Influxdb原理详解

Influxdb原理详解本文目录[隐藏]1一、InfluxDB特点2二、InfluxDB概念2.11)数据格式 Line Protocol2.22)Point2.33)Series2.44)Shard3三、存储引擎 - TSM Tree3.11)Shard3.22)Cache3.33)WAL3.

2017-07-12 09:52:07 3938

原创 php异常机制

最近在扩展抓取pdo的时候发现了点问题,发现有的是报异常,有的是不报, 11 <?php 10 error_reporting(E_ALL ^ E_DEPRECATED); 9 /* 8 //$link = mysql_connect('10.209.44.14:10044', 'ffan_weixin_bj', 'ffan_weixin_bj'); 7 $link = mysq

2017-03-10 22:13:49 952

转载 linux动态链接库导出函数控制

linux动态链接库导出函数控制windows 环境的vc的话,可以方便的指定__declspec(dllexport) 关键字来控制是否把dll中的函数导出。我也来测试一下linux下面是如何做的:先看gcc 和ld的相关选项======================================gcc 选项       -shared           P

2017-03-05 15:33:35 2242

转载 SSL/TLS原理详解

本文大部分整理自网络,相关文章请见文后参考。关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 ,如果你想快速自建CA然后签发数字证书,请移步 基于OpenSSL自建CA和颁发SSL证书 。SSL/TLS作为一种互联网安全加密技术,原理较为复杂,枯燥而无味,我也是试图理解之后重新整理,尽量做到层次清晰。正文开始。1. SSL/TLS概

2017-03-02 09:09:35 529

转载 go http分析

go标准库剖析1 (transport http请求的承载者)时间 2015-09-11 14:40:39  SegmentFault原文  http://segmentfault.com/a/1190000003735562主题 HTTP Goroutine使用golang net/http库发送http请求, 最后都是调用 transport的 RoundT

2017-02-21 18:25:20 3645

转载 深入Go语言网络库的基础实现

Go语言的出现,让我见到了一门语言把网络编程这件事情给做“正确”了,当然,除了Go语言以外,还有很多语言也把这件事情做”正确”了。我一直坚持着这样的理念——要做"正确"的事情,而不是"高性能"的事情;很多时候,我们在做系统设计、技术选型的时候,都被“高性能”这三个字给绑架了,当然不是说性能不重要,你懂的。目前很多高性能的基础网络服务器都是采用的C语言开发的,比如:Nginx、Redis、memca...

2016-12-10 23:37:56 4266

转载 深入研究PHP及Zend Engine的线程安全模型

在阅读PHP源码和学习PHP扩展开发的过程中,我接触到大量含有“TSRM”字眼的宏。通过查阅资料,知道这些宏与Zend的线程安全机制有关,而绝大多数资料中都建议按照既定规则使用这些宏就可以,而没有说明这些宏的具体作用。不知道怎么回事总是令人不舒服的,因此我通过阅读源码和查阅有限的资料简要了解一下相关机制,本文是我对研究内容的总结。本文首先解释了线程安全的概念及PHP中线程安全的背景,然后详

2016-11-13 13:53:12 522

转载 动态连接库和符号(symbol)

strip符号表 对于.so库,strip过后仍然可以被链接。因为用于链接的.dynsym节仍在。 对于.o文件,strip过后确实不能在连接编译成目标文件。因为.o文件不是目标文件,和.so文件不同,它并没有.dynsym节用于导出符号给外部程序。所以我认为编译器用于链接成目标文件的符号表就是我们objdump出来看到的那张

2016-10-31 10:42:13 3777 1

原创 php5.6与php7 不同总结(陆续补充)

php5.6的哈希表比较恶心,php7也对哈希表进行了改造,先介绍下php5.6的哈希表原来大家都清楚,我们看一下更细的一部分,如何更新插入:static zend_never_inline zval **_get_zval_cv_lookup_BP_VAR_W(zval ***ptr, zend_uint var TSRMLS_DC){ zend_compiled_variable

2016-09-08 16:45:14 8610

转载 抽象语法树

转自:http://blog.chinaunix.net/uid-26750235-id-3139100.html(一)简介抽象语法树(abstract syntax code,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,这所以说是抽象的,是因为抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有以节点的形

2016-09-01 11:18:10 17523 1

转载 深入理解PHP7之zval

深入理解PHP7之zval转自:https://github.com/laruence/php7-internal/blob/master/zval.mdPHP7已经发布, 如承诺, 我也要开始这个系列的文章的编写, 今天我想先和大家聊聊zval的变化. 在讲zval变化的之前我们先来看看zval在PHP5下面是什么样子版权申明:本文是原创作品,包括文字、资料、

2016-08-23 18:20:34 877

转载 PHP 7中新的Hashtable实现和性能改进

PHP 7中新的Hashtable实现和性能改进转自:http://gywbd.github.io/ 这篇文章是翻译自nikic的最新大作,我从他的blog中学到了很多东西。这篇文章貌似是他半年多来发的第一篇文章,文章主要是讲PHP 7中的新的Hashtable的实现,Hashtable是PHP中非常核心的部分,数组就是基于此实现的,而数组在PHP中的使用是如此之频繁,所以

2016-08-23 17:26:36 6233 2

原创 php的op_array与execute_data的关系

今天稍微对php做下总结,首先介绍最重要的两个数据结构,以及两个结构间的数据传递struct _zend_op_array {/* Common elements */zend_uchar type;const char *function_name;zend_class_entry *scope;zend_uint fn_flags;union _zend_funct

2016-08-07 01:11:49 2768

转载 深入理解PHP传参原理(PHP5.2)

这篇文章不错,虽然是5.2,后续会根据这篇文章把5.6和7整理出来首先说下今天想到的一个问题。在编写php扩展的时候,似乎参数(即传给zend_parse_parameters的变量)是不需要free的。举例:PHP_FUNCTION(test){ char* str; int str_len; if (zend_parse_pa

2016-07-26 10:11:31 1164

原创 c与lua 相互调用

改了下c代码与lua的联调,利用网上的例子gcc -g lua.c -llua -lm -o luatest#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include "lua.h"#include "lauxlib.h"#include "lualib.h"typedef int bool;void main(in...

2016-07-11 01:53:41 385

转载 [译]深入浅出Redux中间件

[译]深入浅出Redux中间件时间 2015-10-09 09:37:12  Kazaff原文  http://blog.kazaff.me/2015/10/09/[译]Redux中间件深入浅出/主题 中间件 Redux原文地址: https://medium.com/@meagle/understanding-87566abcfb7a从2014年二月开

2016-05-03 09:54:00 701

转载 gdb 调试汇编

关于GDB调试C程序的常用命令与手段就不多说了,这里主要介绍一下如何对C程序做到汇编指令级别的调试。首先是获取汇编代码,这可以通过disassemble命令或x命令或类似的命令:1234567891011121314151617

2016-03-31 19:37:55 1650

转载 PHP-Zend引擎剖析之CV变量

讨论完虚拟机的基本流程后,接下来就是把细节的地方揪干净,接下来几篇文章先揪一下PHP的变量。我们知道PHP的变量是弱类型的,但是我并不打算从这个开始分析,我先把最简单的赋值语句:开始分析整个变量赋值的过程,同时解释一下PHP的CV(compiled variable)变量。从上一篇《PHP-Zend引擎剖析之Hello World(二)》知道每条语法规则从编译到运行需要经历以下两个步骤

2016-03-10 11:01:01 927

转载 败者树 多路归并排序

一 外部排序的基本思路假设有一个72KB的文件,其中存储了18K个整数,磁盘中物理块的大小为4KB,将文件分成18组,每组刚好4KB。首先通过18次内部排序,把18组数据排好序,得到初始的18个归并段R1~R18,每个归并段有1024个整数。然后对这18个归并段使用4路平衡归并排序:第1次归并:产生5个归并段R11   R12    R13    R14

2016-02-23 11:35:17 3478

转载 Hadoop是怎么分块的

Hadoop是怎么分块的hadoop的分块有两部分,其中第一部分更为人熟知一点。 第一部分就是数据的划分(即把File划分成Block),这个是物理上真真实实的进行了划分,数据文件上传到HDFS里的时候,需要划分成一块一块,每块的大小由hadoop-default.xml里配置选项进行划分。   dfs.block.size  67108864  The

2016-02-17 20:24:34 2276

原创 调查内存剩余太少的问题

上传几个最近查问题的截图, cat /proc/meminfo vmstat -m

2015-11-27 12:39:18 414

转载 Backlog 讨论

TCP3次握手实际上可分为4步1 客户端发起connect(),发送SYN j 2 服务器从SYN queue中建立条目,响应SYN k, ACK J+1 3 客户端connect()成功返回,响应ACK K+1 4 服务器将socket从SYN queue移入accept queue,accept()成功返回注:SYN/FIN各占一个序列号,ACK

2015-11-25 18:22:22 3277

原创 linux 高端内存

最近又温习了一下linux内存分配,自己逻辑地址与物理地址的映射,特别针对高端内存的理解首先说32bit 和64 bit针对空间的划分1 32bit 虚拟空间划分内核空间1g和用户空间4g(其实可以调整变成内核空间2g和用户空间2g)这点要注意的是虚拟的概念和物理内存无关,只是操作系统便于管理的一种抽象,我以前总是和物理内存去做对比的理解,最后纠缠不清,精神崩溃了2 32b

2015-08-12 10:55:16 540

转载 物理内存布局

通过 cat  /proc/zoneinfo 可以看到zone区域32bit架构可以配置两种不同的划分1G(内核空间)/3G(用户空间)ZONE_DMA 内存开始的16MBZONE_NORMAL 16MB~896MBZONE_HIGHMEM 896MB ~ 结束DMA&NORMAL是直接映射到3G~3G+896M,其余部分(如0~3G的用户空间,内核空间

2015-08-11 14:40:45 1532

转载 linux 高速缓冲区 buffer cache

/* * linux/fs/buffer.c * * (C) 1991 Linus Torvalds *//* * 'buffer.c' implements the buffer-cache functions. Race-conditions have * been avoided by NEVER letting a interrupt change a buffer (ex

2015-08-06 22:46:37 878

转载 使用netns虚拟网络进行网络测试

netns是在linux中提供网络虚拟化的一个项目,使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境,目前netns在lxc容器中被用来为容器提供网络。使用netns创建的网络空间独立于当前系统的网络空间,其中的网络设备以及iptables规则等都是独立的,就好像进入了另外一个网络一样。netns虚拟网络空间的网络通信依赖于物理接口,光讲听上去很虚,我们来操练点实际的看看:1

2015-07-23 23:42:08 871

转载 Docker背后的内核知识—Namespace资源隔离

Docker这么火,喜欢技术的朋友可能也会想,如果要自己实现一个资源隔离的容器,应该从哪些方面下手呢?也许你第一反应可能就是chroot命令,这条命令给用户最直观的感觉就是使用后根目录/的挂载点切换了,即文件系统被隔离了。然后,为了在分布式的环境下进行通信和定位,容器必然需要一个独立的IP、端口、路由等等,自然就想到了网络的隔离。同时,你的容器还需要一个独立的主机名以便在网络中标识自己。想到网络,

2015-07-23 16:00:20 2098

转载 Docker基础技术:Linux Namespace(上)

时下最热的技术莫过于Docker了,很多人都觉得Docker是个新技术,其实不然,Docker除了其编程语言用go比较新外,其实它还真不是个新东西,也就是个新瓶装旧酒的东西,所谓的The New “Old Stuff”。Docker和Docker衍生的东西用到了很多很酷的技术,我会用几篇 文章来把这些技术给大家做个介绍,希望通过这些文章大家可以自己打造一个山寨版的docker。当然,文章的

2015-07-23 14:13:28 524

转载 Linux内核namespace机制

1.  Linux内核namespace机制Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于某个特定的Namespace。每个namespace下的资源对于其他namespace下的资源都是透明,不可见的。因此在操作系统层面上看,就会出现多个相同pid的进程。系统中可以同时存在两个进程号为0,1,2的进程,由于属于不同的

2015-07-23 09:07:00 509

转载 1消息队列(报文队列)实践到内核消息队列的创建

我是无名小卒,一直想写一些关于内核方面的资料,学习内核很久了,市面上的内核书我都读过了,无法对任何一本书加以总结,因为他就象linux的内核一样在不断更新和升级,针对2.6内核现在市面上非常缺少相关内核的分析资料情况,当然,也有不少网友写了一些关于2.6内核的博客文章,我也看过,但是写的不够深刻具体,总是在内核的过程上粗略的一笔带过,因此我下决心只要有空闲时间就写一些日志来与大家分享,很多书籍和博

2015-07-22 22:02:24 549

转载 netlink 用法

netlink

2015-07-21 11:54:36 757

原创 gdb 调试go

(gdb) source /usr/local/go/src/pkg/runtime/runtime-gdb.pyLoading Go Runtime support.(gdb) r -f etc/test.conf(gdb) info goroutines 1 waiting runtime.park* 2 syscall runtime.notetsleepg 3 waiting runtim

2015-06-02 18:00:39 908

asp.net一个比较好懂的三层结构

asp.net一个比较好懂的三层结构,看看吧

2008-11-19

net三层结构的例子

想要学习asp.net三层结构就学学吧,入门的

2008-11-19

javascript学习源码

javascript板块风之石提供的源码

2008-11-19

javascript学习源码

宝玉作品集,我下载了所有的,想深入学习javascript的就看看吧

2008-11-19

asp.net一个比较好懂的三层结构

是我学习三层结构过程中入门的代码, 非常不错

2008-11-19

javascript学习源码

学习javascript的好的选择如果想要提高的话

2008-11-19

php电子商务网站源码

想要提高又想学习电子商务,那这个源码是不错的选择

2008-11-19

javascript学习源码

javascript版主jk提供的tree的源码

2008-11-19

javascript学习源码

javascript版主jk提供的源码2

2008-11-19

javascript学习源码

javascript版主jk提供的学习代码

2008-11-19

javascript学习源码

一个非常好的php留言本,如果想深入学习php这个例子再好不过了,利用了自己的模板类,还有xml的用法,非常不错也是相当入门

2008-11-19

javascript学习源码

很长时间不看了但一直没舍得丢,如果有想深入学习javascript的就下来琢磨琢磨,反正不花钱

2008-11-19

chinamobile源代码

学习j2ee最好的例子,其中用到了struts+hibernate+spring

2008-11-18

SqlHelper源代码

SqlHelper源代码,不用多少了...

2008-11-18

js 可改变表格单元格大小

可改变表格单元格大小

2007-10-02

风声无限联动菜单

大家都碰到过联动,这个写法结构好,扩展性好

2007-09-17

js树型源码

收藏的js树源码,包括各类经典源码

2007-09-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除