首页 » 作者存档: 信海龙 ( 第 4 页 )

Author Archives: 信海龙

JVM内存结构

 

前言 在Java语言开发过程中,out of memory错误是很常见的一种错误。对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生。在JAVA 8中内存结构有进行了改变,Metaspace替代了PermGen。 内存结构简介 JVM的内存结构如下图所示:(图片来源于网络) JVM的内存结构大概分为: 堆(hea ...

PHP返回内容过长时被nginx截断的解决办法

 

背景 周日把博客的版本升级到最新,顺便又从新部署了nginx和PHP的环境。使用了PHP7。从新部署环境后发现原先发布博客文章时,编辑框不能正常显示。如图: 分析 查看了html源代码,发现html源代码被截断了。因此,导致网页内容显示不全。 之后的整个分析过程绕了一大圈,即是tcpdump,又是用tcpflow进行网络包分析。最 ...

非侵入式监控PHP应用性能监控分析

 

前言 所谓非侵入式监控PHP应用性能,就是不修改现有系统代码,而对系统进行监控。这样的系统才能更容易的应用到PHP应用中。这里抛砖引玉,欢迎大家交流。 方案一 如果只是监控每次请求的访问时间。直接检测nginx的日志即可。在nginx的日志中有两个选项。$request_time 和 $upstream_response_time 。 这两个选项记录了 ...

PHP扩展迁移为兼容PHP7记录

 

PHP7扩展编写的时候,提供的一些内核方法和之前的PHP之前的版本并不能完全兼容。有不少方法参数做了调整。下面是在迁移过程中遇到的一些问题。记录下来,避免大家再踩坑。 PHP7扩展开发之hello word 白话PHP7扩展开发之创建对象 add_assoc_stringl 方法参数改为四个。 add_assoc_stringl(parray, key, value, value_le ...

PHP7扩展开发之hello word

 

本文是以PHP7作为基础,讲解如何从零开始创建一个PHP扩展。本文主要讲解创建一个扩展的基本步骤都有哪些。示例中,我们将实现如下功能: <?php echo say(); ?> 输出内容: $ php ./test.php $ hello word 在扩展中实现一个say方法,调用say方法后,输出 hello word。 第一步:生成代码 PHP为我们提供了生成基 ...

php性能监控与优化

 

在很早很早之前,在21cto社区线下分享大会上,曾经分享了一个主题《php性能监控与优化》。当时没放出ppt,今天发现有人在微博找ppt。放出下载地址。 点此下载。

PHP7扩展开发之类的创建

 

本篇文章主要将如何在扩展中创建一个对象。创建的对象的过程,其实和一个小孩出生,成长的过程有些类似。 第一步,办准生证 生孩子第一步,先办准生证。声明我要生孩子了。对象创建的时候,如何办准生证呢?只要定义一个zend_class_entry变量即可。代码如下: zend_class_entry ce; zend_class_entry 是啥?可以认为 ...

PHP7内核基础知识之变量类型

 

前言 下面我们大概了解下PHP7的变量类型都有哪些,是如何存储变量的。 zval结构定义 PHP7中是使用zval结构存储变量信息的。zval结构的定义在./Zend/zend_types.h文件中定义。 struct _zval_struct { zend_value value; /* value */ union { struct { ZEND_ENDIAN_LOHI_4( zend_uchar type, / ...

Gearmand异步处理就安全了吗?不!

 

前言 之前使用Gearman的时候,遇到过一个卡顿的问题。今天微博上又有人问我是否遇到过此类问题。这个问题,当时是伯诚老师解决的。我把他的文章搬过来。希望能给遇到此类问题的人一点参考。 问题 使用Gearman作为异步消息处理中间件是却没有想象中的顺利。我们多次发现Gearmand进程会将PHP的请求Hold住,不做任何响应, ...

如何设置Java的默认版本

 

Mac下Java的版本是1.7。 java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) 安装了1.8版本后,执行Java -version命令依然显示的是1.7版本信息。如何切换到1.8版本呢?只要执行如下几个命令即 ...

ReactPHP,PHP版的Node.js

 

前言 前段时间csdn找我约稿。一直忙于项目,也没来及写。十一的时候,学习了下ReactPHP。把了解的一些东西整理成文。难免有疏漏,如发现请指正。原文已经发布到csdn。网址 http://www.csdn.net/article/2015-10-12/2825887 从名字说起 虽然ReactPHP项目已经发展了有4年之久,但是对于其称呼显得有点混乱。在开源中国为 ...

udp协议

 

简介 UDP是User Datagram Protocol的简称。中文名为,用户数据包协议。和tcp协议一样,工作在OSI网络模型的第四层(传输层)。但是,和tcp不一样,它提供的是不可靠的网络传输。它不负责对数据包分组,组装和对数据包排序。也就是说,当数据包发出后,是无法知道数据包是否安全完整到达。 特点 1、无连接:即在发送数据 ...