- 博客(59)
- 收藏
- 关注
转载 PHP 7中新的Hashtable实现和性能改进
大概三年前,我写一篇名为“分析数组的内存使用量”(这篇文章也得相当不错,值得一读)的文章,那篇文章分析的是PHP 5中的数组使用内存的情况。作为我所参与的PHP 7的开发工作中的一部分,我专注于改进了一些小的数据结构的内存分配情况,为此重写了Zend Engine的大部分代码。在这篇文章中,我会大概说明一下新的hashtable的实现,以及为什么它会比之前的实现更高效。我使用下面的代码来测试内存的...
2018-05-14 11:40:02
400
转载 redis 的两种持久化方式及原理
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久
2017-02-23 16:18:47
401
转载 聚集索引和非聚集索引的区别
聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后。聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速
2017-02-23 15:18:04
847
转载 nc (NetCat) 网络安全工具介绍,nc在centos里的rpm包叫啥
WEB2.0 评论(0)netcat 在centos里叫:nc.x86_64可以用:yum search nc找下。——————[root@jackxiang ~]# yum install nc.x86_64Total download size: 57 kInstalled size: 109 kIs this ok [y/N]: yhttp
2015-11-04 14:10:14
4588
原创 使用 Nginx 的 X-Sendfile 机制控制文件访问权限(php版)
BBS或者网站经常会有只有你有权限才能看到这个页面,或者下载这个资源,日前探访了nginx服务器怎么实现这个文件控制的,用到了x-sendfile。一、什么是 X-Sendfile?X-Sendfile 是一种将文件下载请求由后端应用转交给前端 web 服务器处理的机制,它可以消除后端程序既要读文件又要处理发送的压力,从而显著提高服务器效率,特别是处理大文件下载的情
2015-10-16 15:09:46
2504
原创 开发机配置
新加开发者流程名词解释---------------------------------- developer : 开发者名称 ( 以下用 developer 代替 ) 例如 : liangshaolanunameForShort : 开发者中文名最后两字的首字母缩写(以下用 unameForShort 代替) 例如: 王二小 unameForShort =
2015-10-16 14:15:53
1035
转载 PHP运行模式
PHP运行模式有4钟:1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli 命令行运行 (Command Line Interface)4)web模块模式 (apache等web服务器运行的模块模式)1. CGI(Common Gatewa
2015-07-22 10:45:54
444
转载 用PHP改变图片的尺寸大小
改变图片的尺寸是一个很常见的功能需求,下面开始研究下关于PHP改变图片尺寸的方法。先介绍一个自己写的函数。0102 03$imgsrc = "http://www.nowamagic.net/images/3.jpg";04
2015-07-09 14:37:48
5832
原创 php绘图图片失真问题处理
<?phpheader("content-type:image/png");$imxx = ImageCreateFrompng("1.png");imagesavealpha($imxx, true);$im = imagecreatetruecolor(imagesx($imxx), imagesy($imxx));$im1 = ImageCreateFrompng("3.png")
2015-07-09 14:34:19
4090
转载 Top命令使用
op命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序。 top进入视图top视图 01【top视图 01】
2015-01-21 11:39:51
502
转载 linux 系统负载高 如何检查
1:load Average 1.1:什么是Load?什么是Load Average? Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing) 简单的说是进程队列的长度。Load Average 就是一段
2015-01-16 10:58:16
503
原创 同时抓取多个页面
function rolling_curl($urls, $fnCB, &$fnArg = NULL) {$queue = curl_multi_init ();$map = array ();$agentStr = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.1; C
2014-10-25 12:00:46
434
转载 nginx 内置变量大全
HTTP核心模块支持一些内置变量,变量名与apache里的对应。比如 $http_user_agent,$http_cookie等表示HTTP请求信息的变量。更多变量:$args, 请求中的参数; $content_length, HTTP请求信息里的"Content-Length"; $content_type, 请求信息里的"Content-Type"; $document
2014-10-24 16:08:12
576
转载 nginx 查看 并发连接数
通过查看Nginx的并发连接,我们可以更清除的知道网站的负载情况。Nginx并发查看有两种方法(之所以这么说,是因为笔者只知道两种),一种是通过web界面,一种是通过命令,web查看要比命令查看显示的结果精确一些。下面介绍这两种查看方法No1、通过浏览器查看 通过web界面查看时Nginx需要开启status模块,也就是安装Nginx时加上 --with-http_
2014-04-17 13:47:19
28064
转载 php设计模式
1.单例模式 单例模式顾名思义,就是只有一个实例。作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。为什么要使用PHP单例模式 1. php的应用主要在于数据库应用, 所以一个应用中
2014-01-23 18:08:41
574
原创 今年调研的开源软件(2)
一个进程管理工具supervisor安装easy_install获取代码:wget https://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c11-py2.4.egg#md5=bd639f9b0eac4c42497034dec2ec0c2b执行安装chmod +x setuptools-0.
2014-01-23 12:55:46
527
原创 今年调研的开源软件(1)
1、什么是gearmanGearman是一套可以一个work传递其他机器,或者调用其他机器功能的应用程序框架。它允许并行工作,负载平衡处理,并调度不同语言之间的职能。它可用于各种应用,从高可用性的网站数据库复制事件的运输。简单来说,Gearman是一个分布式的任务调度框架,它包括 a client,a worker ,a job server这三部分组成。Gearman的执行过程:客户
2014-01-23 12:43:57
719
转载 PHP5.4新特性
PHP5.4正式前两天发布了,之前有看了一些PHP5.4主要特性相关文章,因此在这里小结一下。其中好几点更新是由Laruence贡献的!本文部分内容也是源自Laruence的博客。1. Buid-in web serverPHP5.4内置了一个简单的Web服务器,这样在做一些简单程序就方便多了,省去了环境配置的工作,特别对于初学者来说。把当前目录作为Root Document只需要
2014-01-22 17:49:53
4333
转载 查看 Linux 内核路由表
查看 Linux 内核路由表使用下面的 route 命令可以查看 Linux 内核路由表。# routeDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.255.0 U 0
2014-01-22 17:22:10
4237
转载 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM
CGICGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等。FastCGIFastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,
2013-08-23 10:40:38
524
原创 分析日志统计负载均衡下的两台机器独立ip
首先负载均衡下面的两台机器,用户访问到的几率是均等的,所以日志里面两台机器会有很多重复的ip。如果想获取独立ip,必须把两个日志文件合并之后才能排重。于是就sz 下来合并,发现每个日志文件都很大,怎么减少文件大小呢。我们要的是ip所以只取出相应的ip,然后再合并就不会那么大了。cat access.log-20130805 | grep "login" | awk '{print $1}
2013-08-07 18:18:25
761
原创 解决/usr/bin/env: php: 没有那个文件或目录
今天安装yii框架的时候遇到了这个问题,查了下应该是找不到php的执行文件。 [root@xiaofeng data]# $PATHbash: /usr/local/openresty/nginx/sbin:/usr/local/openresty/nginx/sbin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/
2013-06-19 14:44:32
12358
原创 Win7+Vbox 下CentOS通过桥接上网设置
在Vbox中安装了CentOS系统,通过nat方式可以直接上网,但主机和虚拟机不再一个ip段,互相不能ping通,于是采取了桥接方式。1、修改网卡配置(/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO="dhcp"ONBOOT="yes"TYPE="Ethernet"新增下面两行GATEWAY
2013-06-17 15:00:22
3678
转载 rsyncd.conf配置文件
rsyncd.conf配置文件 2011-06-16 22:18:44| 分类:文件同步 | 标签:rsync的配置 |字号 订阅1.rsyncd.conf配置文件 1.1 全局参数 在[moudle]之前的参数都是全局参数,也可以在全局参数下定义部分模块参数,这时该参数的值就是所有模块的默认值。
2013-06-16 18:01:51
7331
原创 php数组二分法查找
[php] view plaincopy//search函数 其中$array为数组,$k为要找的值,$low为查找范围的最小键值,$high为查找范围的最大键值 function search($array, $k, $low=0, $high=0) { if(count($array)!=0 and $high == 0)
2013-05-05 11:00:10
503
转载 为什么Nginx的性能要比Apache高得多?
这主要是因为Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(FreeBSD)网络I/O模型,而Apache则使用的是传统的select模型。曾在一篇博客上看到有这么个实例:假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.如果你使用的阻塞IO 模型来处理这个问题,那么你就只能一直守候在A号楼门
2013-01-06 14:12:56
361
转载 pcntl_signal 方法
SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程,并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP 建立CORE文件 跟踪自陷SIGBUS 建立CORE文件 总线错误SIGSEGV 建立CORE文件
2012-02-16 14:11:58
2623
转载 2>&1使用
一 相关知识1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |)。2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `)。3) 默认地,标准的错误输出到终端,但是也可以重定向到文件。4)标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示。0:标准输
2012-02-15 16:34:03
254
转载 shell if语句
if 语句格式if 条件then Commandelse Commandfi 别忘了这个结尾If语句忘了结尾fitest.sh: line 14: syntax error: unexpected end of fi if 的三种条件表达式if
2012-02-02 10:53:01
443
原创 php 中的argc和argv
在linux下面测试脚本:[finance@jobexecutor gangfeng]$ php test.php a b $argv: 3$argv:Array( [0] => test.php [1] => a [2] => b)
2012-02-02 10:27:21
1743
转载 每一位想有所成就的程序员都必须知道的15件事
<br />我刚看完Chad Fowler的Passionate Programmer(中文版《我编程,我快乐:程序员职业规划之道》),这本书讲的是如何在软件开发行业中取得非凡的成就。<br />以下是根据这本书总结的,作为程序员,要取得非凡成就需要记住的15件事。<br />1、走一条不一样的路<br />在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。<br />2、了解自己的公司<br />以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看
2011-05-05 23:54:00
363
原创 恶意注册引发的思考
<br /> 前天网站被恶意注册,平均一秒钟被注册三个账号,看了看程序没有问题,加上验证码就应该可以了解决了,我加的验证码是通过ajax验证的,应该可以解决了,但是出乎意料的是,没有起到任何作用,后来找到原因是后台程序里面没有验证验证码。为什么会犯这个错误呢,想了想,最后总结出来两条:<br /> 一、没有把用户想的过分邪恶。<br /> 思想里面还是用正常的套路来思考用户注册,肯定是解决不了问题的。用户远比你想的厉害,不要把任何机会留给用户犯错误,而且永远不要忘记后端验证,只
2011-02-24 20:29:00
485
原创 php中的抽象类和接口
<br /> 抽象类和接口相似,都是一种比较特殊的类。接口是一种特殊的抽象类。他们的声明都比较容易,但是作用理解上比较困难,下面就具体分析一下:<br /> 首先,我们先来看看抽象类,抽象类的关键字是abstract,任何一个类都包括成员属性和成员方法。那抽象类的成员属性和成员方法都有什么要求呢?<br /> 成员属性:抽象类中可以有不是抽象的成员属性,但访问权限不能是private关键字修饰为私有的。<br /> 成员方法:抽象类中可以有不是抽象的成员方法,但抽象方
2011-02-21 11:51:00
684
原创 php上传大文件
<br /> 昨天分析php错误日志,发现一个警告 PHP Warning: POST Content-Length of 8700153 bytes exceeds the limit of 8388608 bytes(8388608bytes =8M) in Unknown on line 0,这个字面的意思是POST过来的头部大小超过了限制。怎么会出现这个警告呢,仔细一想php配置文件里面有个post_max_size=8M,它设置了文件上传post数据最大字节长度为8M,如果超过了限制,
2011-02-15 21:51:00
956
转载 我所积累的20条编程经验
编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你能在本文中看到自己的身影。 从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。 我会持续更新这些经验,我可
2011-02-15 21:40:00
303
原创 php快速排序
【快速排序(一维数组)】【基本思想】:在当前无序区R[1..H]中任取一个数据元素作为比较的"基准"(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I 1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I 1..H](1≤I≤H),当R[1..I-1]和R[I 1..H]均非空时,分别对它们进行上述的划分过程,直至所有无序子区中的数据元素均已排序为
2011-02-12 14:12:00
327
原创 php进行冒泡排序和简单选择排序
原来对冒泡和简单选择排序有点模糊,昨天翻开大学里面的数据结构仔细看了一下,把两种排序的算法用php写了一下。1、冒泡法原理: 首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较批二个记录和第三个记录的关键字,依次类推,直至第n-1个元素和第n个元素进行过比较为止。以上为一次冒泡排序,礤结果是使得关键字最大的记录被安置到最后一个记录的位置上。然后进行第二真趟冒泡排序,对前n-1个记录进行同样操作,其结果是使关键字次大的记录安置到第n-1人的位置上,如此
2011-02-11 11:09:00
2158
转载 再次写给我们这些浮躁的程序员
2010年初写过一篇博客(我们是一群和平年代充满浮躁与抱怨的程序员),一年过去了,社会好像更浮躁,也有网友问我这方面的问题,于是有了下面这篇文章,再次写给我们这些刚入行浮躁的程序员,如何成长,以下是列出了一些成长的心得,我们不必每条都去实践,但是优秀的程序员成长过程中总会实践里面的几条。多做项目,多思考不要害怕做事,刚毕业的同学最缺的就是工作经验,乱七八糟的项目能让你很快就了解了一个公司的业务与使用的技术,并且可以多接触同事与客户。当你毕业后刚进一家公司时,如果主管没有把你安排到项目组工作,那真的很杯具,因
2011-02-10 15:13:00
536
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人