Web backend developer. Electrical Engineer.
发表过的专栏文章
最近发表的话题
最近发表的评论
  • ext-collections: 优雅、快速地操作 PHP 数组 at 3天前

    @Hanson 嗯,我刚才看了下那个扩展,实现的功能还是少了些。相比,ext-collections有将近100个方法,其命名和功能严格依照Kotlin.Collections中的实现。其实这类扩展实现难度很低(写起来没有成就感),也有一些人写过(有重复造轮子之嫌),但是以我目前见过的类似开源扩展来看,多半有诸如内存泄漏或者违背写时复制原则的bug,而且无一例外地功能少。所以我觉得用心开发出一个适用性强、高效且稳定的数组操作扩展还是很有必要的。

  • @Summer 在 2018-04-18 08:56:54 的动弹 at 6天前

    记得很久以前框架不流行,大家都直接在PHP里面混写HTML的时候每天都能看到if(...) ... endif;这样的语法,现在除了在一些模版里偶尔见到之外,基本上已经绝迹了 :joy:

  • 如何在不会导致服务器宕机的情况下,用 PHP 读取大文件 at 1周前

    补充一下。libuv支持异步文件系统I/O,有需求的可以使用php-uv扩展。

  • Web 开发进阶指南 at 1周前

    @chenos 其实像PHP-CPP这种库对Zend API的进一步封装,对于一般PHP开发者来说反而减少了他们踩的坑,但是它们都有相当大的局限性,而且可能会对扩展的性能大打折扣,尤其是在不熟悉PHP底层机制的初级开发者手中。所以,我更倾向于推荐PHP扩展开发的入门者先研究PHP底层,再熟悉使用Zend API开发扩展,在这基础上如果有快速开发的需求再考虑使用PHP-CPP这种高度封装的库。

  • @DenverB 在 2018-04-13 15:28:57 的动弹 at 1周前

    其实这些算是非常简单的。之前我的实习一面,让我举例说明JVM性能调优,简述InnoDB在底层是如何实现的transaction,还有从底层实现一个关系型数据库的group by功能的实现思路等等。看我不太会,问简单一些的,比如像说明Spring Framework中的依赖注入的实现原理,TCP发错重传机制,B+树的实现等等,我感觉答得还可以,然而最终还是挂了。

  • PHP 引用是个坑,请慎用 at 1周前

    这篇文章是针对PHP5而言的。然而,在PHP7中,以文中对strlen传入一个数组的引用为例,稍微阅读一下PHP的源码,就可以知道,这个操作并不会导致zend_array被复制。只有“写”操作(比如sort)才会触发“隔离(separation)”机制,导致GC类型的数据被复制,而strlen只是“读”。虽然创建和访问引用类型的变量有额外开销,但它们都不会导致它们所指向的GC类型的数据(如zend_array)被复制。

  • Web 开发进阶指南 at 1周前

    纠正一下, pthreads扩展只能在PHP7.2+使用,不是PHP7.1+。还有一点,尽量避免借助PHP-CPP或PHP-X开发PHP扩展,虽然它们简单易用。

  • 2. 浅析 ZVAL at 3周前

    @xuanjiang1985 zend_long.h中定义,在64位系统zend_longint64_t,所以占8个字节。然而,由于内存对齐机制,即使在32位系统上,zend_value都会占用8个字节(见它的ww成员)。再加上zval的两个各占4个字节的成员u1u2,一个zval永远占16个字节,与32位或64位系统无关。

  • Git 速查表 at 1个月前

    建议补充一些有关git submodule的常用命令。我曾经参与过的一个项目就使用了submodule,刚开始弄的时候一头雾水。

  • 使用 coding 免费搭建博客【支持动态程序】 at 1个月前

    纯静态的博客,比如hexo,一般是能够满足大多数人的要求的。第三方评论建议接入Gitment,使用GitHub的issue系统作为评论内容的载体,登录GitHub账号就可以评论了,比畅言、Disqus都方便。