- 博客(60)
- 资源 (13)
- 收藏
- 关注
转载 PHP异步编程简述
概述异步编程,我们从字面上理解,可以理解为代码非同步执行的。异步编程可以归结为四种模式:回调、事件监听、发布/订阅、promise模式。我们最熟悉的两种模式是回调和事件监听,举两个最简单的javascript例子,一个ajax,一个点击事件的绑定:123$.getJSON("uri", params, function
2015-10-15 09:56:17
15073
转载 递归与循环
原创文章,转载请注明: 转载自始终不够本文链接地址: 递归与循环转载请注明:始终不够 » 递归与循环大一学C++的时候,老师说过递归与循环是可以相互转化的,当时好像是用来两重循环解决递归问题,算法的复杂度依然是O(n)。最近发现可以通过模拟实现栈结构通过一重循环实现非递归算法。递归必须满足以下两个条件:在每一次调用自己时,必须是(在某种意义上)更接近于解
2015-09-06 20:27:06
5827
转载 wordpress全栈优化
从最开始计算,《始终不够》个人博客上线已经有两年多了。从最开始就是使用的wordpress,最初为了丰富站内功能,使用了一箩筐的插件,首页加载基本在10s以上,期间使用xhprof做过几次优化,都不是很理想。最近抽出时间整体做了一次性能优化。首页响应时间从1s减少到20ms,并发度从2/s增加到500/s。可以说是有了质的飞跃。这里分享下这次的优化过程。首先,确定我们要优化的组件:浏览器端优化php端优化nginx优化
2015-09-06 19:56:05
6667
转载 flume日志收集系统搭建
flume是Apache的一款开源日志收集软件。在flume中,主要有三个重要的角色:source、channel和sink。source负责收集日志,日志可以是来自任何地方,例如socket,本地文件等等。sink负责将收集来的日志处理掉,处理的方法同样可以是多种多样的,例如写入HDFS,或者在本地文件系统中进行持久化。二channel则是负责source和sink之间的通信的,通信方式最常用的主要有内存管道和文件管道。这样设计的一个好处就是能够让每个角色做到单一职责,source只负责收集,sink只负
2015-09-01 19:31:09
7787
转载 flume+hive处理日志
我希望这篇文章不会长的不能忍受,所以我将做一些假设:你已经有了一个已经安装并配置好的集群。我正在使用CDH4.5,但是这并没有什么特殊的,它应该可以在任何hadoop发行版中使用。你已经对flume有了一个基本的了解。我不会讲一些一般的概念和设置。有很多很好的文章,在那里学习这些更合适。你已经对hive有了一个基本的了解。和flume类似,我想跟你说一些你还不知道的。你已经了解正则表达式。
2015-09-01 19:30:00
8324
转载 flume:支持重命名、移动文件的roll file sink升级版
flume roll file sink升级版,支持以下特性: 支持针对已处理完成文件重命名 支持已处理完成文件移动 支持空文件删除(当进行文件移动或文件重命名时,如文件为空,则执行delete()操作) 支持文件多路复制
2015-09-01 19:28:58
9709
1
转载 php包管理机制-支持php5.3的方法
omposer作为目前主流的php包管理器,使得我们组合不同功能的php代码非常容易,开发也可以更专注某一个模块了。而composer要求我们的php版本不低于php5.3,虽然php5.3也能跑,但不保证不会有问题。而相信目前国内很多公司的php版本仍然停留在php5.3以下的时代,或者由于自身实现了autoload,很难与composer组合到一起,虽然对composer的功能很喜欢,但也只能望而却步。
2015-09-01 19:27:42
6968
转载 PHP异步并发访问mysql简单实现
在实际的开发过程中,我们常常会遇到需要操作多张表,多个库的情况。有时因为一些限制我们不能进行连表(例如,异地数据库),所以只能用php串行访问后再在php里进行合并,有时还需要模拟mysql对合并后的结果进行排序、归并等。这里产生的一个问题就是串行带来的访问时间问题。由于传统的串行访问方式,我们只能等到一条sql执行完毕后才可以执行下一条,所以执行时间是累加的。PHP官方手册提供了一种可以异步并发访问mysql的方式,详见:http://php.net/manual/zh/mysqli.poll.php
2015-09-01 19:26:54
13169
转载 简单PHP性能记录工具
最近写了一个异步mysql客户端的封装,想与传统的串行方式做下性能对比。包括运行时间、内存使用情况等信息。在github和packagist上搜索并没有找到自己想要的,xhprof又太大了,结果也太复杂,不符合现在的需要。所以决定自己写一个package,来实现对php脚本运行时间和内存使用情况的监控,并生成报告。
2015-09-01 19:25:15
5224
转载 简易HTTP协议解析
TCP协议为操作系统底层协议,能够保证应用层获取到完整的、顺序一直的包序列。但TCP不提供具体的分包,需要上层协议自己解决。TCP发送给上层协议的数据是一个没有意义的字符串序列。如何解释这段序列,需要应用层定义,也就是应用层协议规范的内容。 应用层协议按格式一般可以分为文本协议和二进制协议。文本协议最常见的就是HTTP,二进制协议如websocket。无论是哪种协议,都需要对格式严格定义,以方便程序对字符串序列进行分包、拆包。
2015-09-01 19:24:40
10552
转载 SimpleFork php多进程并发框架
多进程程序的编写相比较多线程编写更加复杂,需要考虑进程回收、同步、互斥、通信等问题。对于初学者来说,处理上述问题会比较困难。 尤其是信号处理和进程通信这块,很难做到不出问题。 SimpleFork提供一套类似于JAVA多线程的进程控制接口,提供回收、同步、互斥、通信等方案,开发者可以关注业务问题,不需要过多考虑进程控制。
2015-09-01 19:23:40
7974
原创 SQL查询优化——数据结构设计
数据库设计及使用是WEB开发程序员必备的一项基础技能,在大数据量和高并发场景,合理的数据结构及SQL查询优化对项目来说都会显得格外重要。大部分有经验的程序员都能了解到,程序的瓶颈往往不在程序本身,而在数据访问层。造成数据访问效率低下的原因有很多,如何解决这些问题,直接影响到应用的稳定性、健壮性。
2014-10-06 16:51:31
11636
1
翻译 翻译:Laravel-4-Generators 使用自定义代码生成工具快速进行Laravel开发
使用自定义代码生成工具快速进行Laravel开发这个Laravle包提供了一种代码生成器,使得你可以加速你的开发进程,这些生成器包括:generate:model – 模型生成器generate:view – 视图生成器generate:controller – 控制器生成器generate:seed – 数据库填充器generate:migration – 迁移generate:pivot – 关联表generate:resource -资源generate:scaffold – 脚
2014-10-06 14:04:40
13185
原创 基于Redis的MessageQueue队列封装
Redis的链表List可以用来做链表,高并发的特性非常适合做分布式的并行消息传递。项目地址:https://github.com/huyanping/Zebra-PHP-Framework
2014-09-16 22:34:33
23620
原创 基于System V Message queue的PHP消息队列封装
System V Message queue 是一种进程通信(IPC)的方式,方便实现生产者-消费者模型,单个或多个生产者向队列中写入消息,多个生产者再从队列中获取消息进行处理。项目地址:https://github.com/huyanping/Zebra-PHP-Framework该Wrapper支持:进程通信设置最大队列容量(字节单位)获取当前队列数量修改队列部分属性
2014-08-22 16:30:07
9655
原创 初识Redis——邂逅
最近由于一块业务系统瓶颈的原因,需要找一个能够实现数据快速汇总的工具做一个中间缓存。具体场景是这样的:服务器收集WEB机群的日志集中处理,日志中有大量重复信息,需要汇总做COUNT次数统计。最开始用的MYSQL,后来发现写入瓶颈,造成数据库写入线程阻塞,日志处理线程只能等到不然会把放在内存里的数据库写入队列塞满。后来按业务做了分表,数据库写入和日志处理都改成了多线程。仍然不能解决问题,服务器负载也
2014-03-10 21:36:34
3755
1
原创 基于PCNTL的PHP并发编程
本文主要讲解基于PCNTL的PHP并发编程,虽然PHP本身不支持多进程,但基于LINUX的PHP扩展PCNTL却可以提供多进程编程。网络上很多同类文章,但笔者进行多次尝试后发现,不是难以控制进程数量,就是有潜在产生僵尸进程或孤儿进程的危险,或者父进程阻塞难以获得更大的并发效果,且大多没有介绍FORK的原理,使得PHP程序员学习PCNTL并发编程尤为困难。本文力求解决这个问题。
2014-01-14 23:26:01
19198
原创 mysql复制的一例错误:Relay_Log_Pos不变
最近公司的一台Mysql从机延迟了18W秒,两天前发现延迟时,观察SLAVE STATUS,一切正常,以为近期业务调整造成写操作过多,从机延迟的比较厉害,就没有做过多注意。元旦放假回来后发下延迟时间竟然已经有18W。
2014-01-02 13:53:31
12439
原创 第二章 基础知识和准备
原创文章,转载请注明出处:http://huyanping.sinaapp.com/?p=121作者:Jenner1、基础知识虽然在第一章中我们对PHP进行了简单的介绍,但在没有看到具体代码之前,我们仍然不甚了解PHP究竟是什么,它究竟能做什么。我们依然采用经典的Hello, World!实例来向大家呈现PHP的功能。下面是hello.php文件的源代码:
2013-06-13 22:52:52
1768
原创 第一章 关于PHP
原创文章,转载请注明出处:http://huyanping.sinaapp.com/?p=121作者:Jenner1、静态网页与动态网页记得本人刚刚接触网页开发的时候曾经因为这个问题,闹出了一个很大的笑话。我咨询老师关于网页开发的问题,老师问我是否理解什么是动态网页,我愚蠢并自信告诉老师,动态网页就是能动的网页,例如网页中有flash动画、gif图片等。而老师却同通俗地给我
2013-05-22 10:10:39
1769
转载 迄今见过的最好的职业规划的文章
抱歉。转载过程中已经找不到源地址了。职业的选择,总的来说,无非就是销售、市场、客服、物流、行政、人事、财务、技术、管理几个大类,有个有趣的现象就是,500强的CEO当中最多的是销售出身,第二多的人是财务出身,这两者加起来大概超过95%。现代IT行业也有技术出身成为老板的,但实际上,后来他们还是从事了很多销售和市场的工作,并且表现出色,公司才获得了成功,完全靠技术能力
2013-03-01 20:34:37
2806
原创 写给4年前开始编程序的自己
最近在网上看到有人写了一篇关于《写给4年前没有开始做设计的自己》,突然也想写这样一篇文章。具体那篇文章的内容我并没有细读,防止自己的思路照着他的来。首先,我先简单介绍下自己,好为后面的内容做一个铺垫。我今年23岁,内蒙古人,今年6月将于粤东地区韩山师范学院毕业,软件工程专业。一、如果可以,你应该去学文学或者经济学、或者其他你喜欢的专业这样的建议并不是因为计算机专业不好,或者不适
2013-02-15 17:31:05
37013
222
原创 ORM映射的弊端以及它对数据库优化影响
首先简单的介绍下ORM关系对象映射的概念。虽然NOSQL现在在迅速崛起,但大多数人仍然在使用稳定的关系型数据库,我们将数据组织成记录存储在关系数据库中,每一行代表一条记录。现代编程中,面向对象技术应用已经非常广泛,关系型数据库的数据组织形式与面向对象的数据组织形式存在根本上的差异。ORM的任务就是将关系型数据库中的数据通过ORM层映射为对象,使之能够应用于面向对象程序,方便编程。它确实
2013-02-01 14:22:36
8331
转载 B树、B-树、B+树、B*树
源地址丢失。不好意思。B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开
2013-02-01 13:31:45
1477
原创 PHP中header()立即重定向的不友好性
PHP程序猿经常会采用header函数进行重定向页面,如果重定向是立即的,本人认为存在以下几点不友好性:一,用户再不清楚操作返回状态的情况下,被强制性跳转到了其他界面,造成用户填写数据的丢失,以及返回状态的不明确问题.二,用户大多希望能够在递交页面之后,仅返回状态信息而保留原有界面,这样看,AJAX更适合返回用户操作状态.另外,个人观点认为,不应该通过header函数进行页面重
2013-01-22 09:30:18
4187
转载 fedora 17 关机方法
第一种:点右上角后,按住ALT键,界面中“挂起”就会变成“关机”。第二种:按alt+F2调出运行命令窗口,输入sudo halt。第三种:shutdown -h now第四种:shutdown -y -g0第五种:init 0
2013-01-04 08:25:20
2548
转载 Fedora 17无法用root账户登录解决方法
转自:http://hi.baidu.com/zhangzhaocai/item/4304d0df02888df793a974d7问题描述:Fedora linux17 用root用户登录,输入密码出现验证失败,即使你的密码是正确的,也会出现这种情况,这是因为Fedora linux 默认禁止了root 超级用户。解决办法:最开始尝试利用修复模式修改root用户密码,但是重
2013-01-04 08:02:27
2215
原创 关于以UTF8编码的文件,php发送header时报错的原因
最近在给实习的同事讲解关于wordpress的二次开发。这几天他们的工作中经常遇到一个问题,问题描述如下:访问wordpress网站时经常会报错,说是再header函数之前就已经有输出了字符,且是在functions.php文件的第一行。 当我一次次修改该文件无效果的情况下,我删除了文件中的所有内容,结果依旧。所以我开始怀疑编码问题,并将编码改为ANSI编码,问题解决了。但我们的
2012-08-20 16:34:41
1950
翻译 Open Flash Chart极简单入门教程 英文翻译
如何让Open Flash Chart运作在这一节里,我们将尝试将下面的图表实施在你的web站点上,如下图所示:1、 安装文件在我们开始之前,你应该将Open Flash Chart的压缩包下载下来。打开你所下载下来的压缩包,进入version-2文件加下,将open-flash-chart.swf文件复制到你的服务器根目录下。你可以移动所有的文件到任何
2012-07-26 14:44:00
4025
转载 Open Flash Chart图表的JSON格式基本属性详解
数据文件必须是JSON格式.JSON对象的基本格式:{}把所有对象都编写在{}里面.让它看起来像下面 JSON 数据格式:{ "title":{ "text": "Many data lines", "style": "{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: cen
2012-07-26 14:38:54
1321
转载 zend framework的目录结构
application/ – 存放应用程序的目录,包括 MVC 系统、配置文件、服务以及引导程序(Bootstrap.php)configs/ – 配置文件目录。application/modules – 多模块目录结果 例如admin(后台前程), default(前台),shop(商城)各个模块下都有自己的controllers,modules,Viewscontrollers
2012-07-25 10:36:27
5747
原创 Wordpress主题制作不完全指南
程序猿始终不够新浪微博:weibo.com/ybchris引言 如果你有些HTML经验或者有些套后台的经历,那么wordpress的主题模板开发方式绝对会令你耳目一新。刚刚接触wordpress的时候,我不禁怨恨其没有使用强大的模板引擎,造成了前台的混乱。在后来的学习中,我逐渐感受到了wordpress的强大,虽然它的很多优点我还不是很清楚,但我所接触到的东西已经能让我确定这是一
2012-07-22 10:16:09
3744
原创 使用Include函数的返回值
記得以前在thinkphp中看到一種寫法,一個文件中只有一條return語句,而return的內容是一個數組例如下面代碼:included.php<?phpreturn array(1,2,3,4,5);當時我猜想其應該是把這個數組當做include函數的返回值。經過測試果然如此,看如下調用代碼:include.php<?php$arr = include 'included.ph
2012-05-22 15:08:39
1829
转载 PHP PDO访问数据库
PHP PDO访问数据库BY FUSHANLANG, ON SEPTEMBER 26TH, 2010原文地址:http://www.fushanlang.com/blog/php-pdo-to-access-the-database-1032/[翻译]为什么你应该使用PHP PDO访问数据库许多PHP程序员学习过如歌使用MySQL或MySQL
2012-05-16 20:37:19
5051
android开发环境搭建完全指南
2012-02-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人