PHP 性能分析与实验(二)——PHP 性能的微观分析
【编者按】此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧重于一些语法要点。本文就改变 PHP 性能分析的角度,并通过实例来分析出 PHP 的性能方面需要注意和改进的点。…
PHP中那些函数是同步阻塞的
同步阻塞函数
- mysql、mysqli、pdo以及其他DB操作函数
- sleep、usleep
为什么Laravel会成为最成功的PHP框架?
2011年,Taylor Otwell将Laravel作为一种包含全新现代方法的框架介绍给大家。Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理、用户身份验证等各种需求。另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器。
Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想到Laravel。本文我们将讨论为什么Laravel会成为最成功的PHP框架。…
PHP SPL标准库之数据结构队列(SplQueue)和优先队列(SplPriorityQueue)
队列这种数据结构更简单,就像我们生活中排队一样,它的特性是先进先出(FIFO)。
PHP SPL中SplQueue类就是实现队列操作,和栈一样,它也可以继承双链表(SplDoublyLinkedList)轻松实现。…
PHP SPL标准库之数据结构堆(SplHeap)、最大堆(SplMaxHeap)、最小堆(SplMinHeap)
堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现。根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。二叉堆还常用于排序(堆排序)。…
PHP并行 多进程/多线程
PHP中提供了一个扩展pcntl,可以利用操作系统的fork调用来实现多进程。fork调用后执行的代码将是并行的。
注:pcntl仅支持linux平台,并且只能在cli模式下使用。
$pid = pcntl_fork(); if($pid > 0){ //父进程代码 exit(0); } elseif($pid == 0) { //子进程代码 exit(0); }
PHP官方没有提供多线程的扩展,pecl中有一个pthreads扩展提供了多线程的特性,地址是http://pecl.php.net/package/pthreads,此扩展仅在线程安全版本中可用。多进程和多线程其实是作用是相同的。区别是…
关于C++、PHP和Swoole
昨天和一个前同事聊天,各种吐槽PHP,吐槽Swoole,他认为PHP到处是坑,PHP局限很大。PHP+Swoole不适合做高并发服务器,C+Swoole才是最好的方案。C++有各种数据结构,C++可以开线程,C++可以共享对象。看来有必要好好得说明一下了。
PHP比C/C++或Java少了什么?多线程,多线程,多线程……
…为 PHP 开发人员介绍 Node.JS #1 : 事件驱动与意大利面
身为PHP开发人员,Node.js中最难弄清的部分就是异步。它是一种全新的代码方式。初步学习后,基于事件驱动的编程会为PHP开发人员创造更多的可能。我将为你解释他如何实现,不过首先来了解意大利面。…
PHP 线程,进程和并发
进程
进程是什么?进程是正在执行的程序;进程是正在计算机上执行的程序实例;进程是能分配给处理器并由处理器执行的实体。 进程一般会包括指令集和系统资源集,这里的指令集是指程序代码,这里的系统资源集是指I/O、CPU、内存等。 综合起来,我们也可以理解进程是具有一定独立功能的程序在关于某个数据集合上的一次运行活动, 进程是系统进行资源分配和调度的一个独立单位。
在进程执行时,进程都可以被唯一的表示,由以下一些元素组成:…
近期评论