Skip to content

Commit

Permalink
Merge pull request #190 from naver/dev
Browse files Browse the repository at this point in the history
Dev
eeliu authored Jul 2, 2020
2 parents 536a057 + 480fcd7 commit fb2adb6
Showing 39 changed files with 976 additions and 263 deletions.
22 changes: 22 additions & 0 deletions Changes-CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#变化

## v0.3.0-beta

- 支持 Python
- demo for django
- demo for flask
- demo for tornado
- demo for BaseHTTPRequestHandler
- 更容易使用
- 新增中文使用说明

## v0.2.3

- 支持Yii框架类加载器 [(如何在Yii中使用pinpoint-php ?)](Example/PHP/demo/yii-demo/Readme.md)
- 为Flarum添加一些开箱即用的插件 [(如何在Flarum中使用pinpoint-php?)](Example/PHP/demo/Flarum-demo/Reademe.md)
- 修复了参考参数的bug
- 支持返回类型为object

## v0.2.2

- 支持 GRPC
10 changes: 5 additions & 5 deletions Changes.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Changes
#Changes

## v0.3.0-beta

@@ -7,13 +7,13 @@
- demo for flask
- demo for tornado
- demo for BaseHTTPRequestHandler
- more easy to use
- support manul in CN
- easier to use
- support manual in CN

## v0.2.3

- Support Yii framework classloader [(How to use pinpoint-php into Yii?)](PHP/pinpoint_php_example/demo/yii-demo/Readme.md)
- Add some out-of-box plugins for flraum [ (How to use pinpoint-php into Flarum?)](PHP/pinpoint_php_example/demo/Flarum-demo/Reademe.md)
- Support Yii framework classloader [(How to use pinpoint-php in Yii?)](Example/PHP/demo/yii-demo/Readme.md)
- Add some out-of-box plugins for flarum [(How to use pinpoint-php in Flarum?)](Example/PHP/demo/Flarum-demo/Reademe.md)
- Fix bug in reference parameters
- Supporting the return type is object

165 changes: 45 additions & 120 deletions DOC/PHP/Readme-CN.md
Original file line number Diff line number Diff line change
@@ -4,14 +4,14 @@

依赖|版本
---|----
PHP| php 7+
GCC| GCC 5+
PHP| php `7+` ,`5+`
GCC| GCC `4.7+`
*inux|
Python | Python 3
pinpoint| 1.8.0-RC1
Python | `Python 3`
pinpoint| `1.8.0+`, `2.0+`
**Composer**|

### 安装
##1 安装

#### 步骤
1. 执行此命令: git clone https://github.com/naver/pinpoint-c-agent.git
@@ -86,143 +86,42 @@ pinpoint| 1.8.0-RC1
```

> 试试 aop example
4. 在 PHP/pinpoint_php_example 目录下,执行以下步骤:
4. 在 Example/PHP 目录下(如果使用的是php5,请到 Example/PHP5 目录下,执行以下步骤:
1. 下载 composer.phar. [如何使用 Composer?](https://getcomposer.org/doc/00-intro.md)
2. 安装 php composer.phar
3. 将$PWD/app/设置为网站根路径 # 也就是将nginx的路径设置为配置文件conf/nginx.conf中的collection -agent路径。
3. 将$PWD/app/设置为网站根路径


## 待办事项

### 待办事项


## 兼容性

Pinpoint 版本 | PHP 版本| Python 版本|GCC 版本
---------------- | ----- | -----|---
1.8.0-RC1 | PHP 7+ | Python3|GCC 5+

## 变化
##2 变化

- 完全支持 ZTS
- 更加稳定
- 性能更高
- 易于使用和维护
- 支持 GRPC

## F & Q
##3 F & Q

### 1. 如何重新生成所有AOP文件?
### 3.1 如何重新生成所有AOP文件?

在Cache/中删除 *__class_index_table*

### 2. 为什么不支持自动更新AOP文件?
### 3.2 为什么不支持自动更新AOP文件?

我们可以支持但不建议这样做!因为我们还没有找到一种有效的方法来实现这一点,每次监测这些文件的状态结果都很糟糕。

### 3. 它在使用时损失了多少性能
### 3.3 在使用时损失了多少性能

在完全测试之后,AOP代码可以在我们的环境(E5-2660 v4 @ 2.00GHz)中至少消耗1ms。但监测的功能/方法越多,损耗的性能也就越多。
## 4 性能测试结果
###4.1 [测试结果 ☚](./Readme-CN.md#压力测试下的性能损失)

[测试结果 ☚](./Readme-CN.md#压力测试下的性能损失)

[FLarum的测试结果 ☚](./User%20Manual-CN.md#1.1-性能测试结果)

### 对于开发人员

[插件编写指南 ☚](../../Example/PHP/Readme-CN.md)

[PHP用户手册 ☚](./User%20Manual-CN.md)

### 已知问题

#### 1. 带有错误文件路径的异常或错误消息。

https://github.com/naver/pinpoint-c-agent/issues/99

#### 2. 如果不使用composer/autoloader,我可以使用这个版本吗?

抱歉,php-simple-aop不支持打包没有composer/autoloader的用户类(或内部类)。顺便说一下,composer挺不错的O(∩_∩)O

https://github.com/naver/pinpoint-c-agent/issues/103

#### 3. 为什么不支持PHP5.x?

https://www.php.net/supported-versions.php

#### 4. ~7.4 不支持generator函数。~ 此问题已解决!

https://github.com/naver/pinpoint-c-agent/issues/100

#### 5. 一些内置函数不支持AOP。
https://github.com/naver/pinpoint-c-agent/issues/102


## v0.1.x 和 v0.2.x 的区别

## v0.1.x VS. v0.2.x

> 为什么要重构pinpoint_c_agent (0.1.x)?

1. 很难支持所有php版本
2. 速度太慢, v0.1.x 挂钩所有函数
3. 不支持ZTS

### 数据线路图

#### v0.1.x

> AOP 基于 zend_excuted_hook

![How does it work](../../images/principle_v0.1.x.png)
#### v0.2.x

> AOP 基于 classloader (比如 java-classloaders)

![How does it work](../../images/principle_v0.2.x.png)
###4.2 [FLarum的测试结果 ☚](./User%20Manual-CN.md#1.1-性能测试结果)

#### PHP 版本兼容性

Agent 版本|PHP5.5.x|PHP5.6.x|PHP7.x |php-zts
----|-----|----|-----|---
v0.1.x|✔|✔|✔|✘
v0.2.x|✘|✘|✔|✔

#### PHP 框架

框架|v0.1.x|v0.2.x
----|-----|----|
Laravel|✔|✔
ThinkPHP|✔|✘
YII|✔|✔
Workerman|✘|✔
EasySwoole|✘|✔

> 备注

1. 如果您的php应用程序不支持composer(如woredpress、phpwind等),那么就只能使用v0.1.x。

#### 稳定性

`v0.2.x > v0.1.x`


#### 可维护性(动态地)

```
✔: 不会阻塞用户的应用程序
✘: 阻塞用户的应用程序: 应该重启php-fpm/apache
```
操作|v0.1.x|v0.2.x
----|-----|----
1.更新插件(CRUD) |✘|✔ [如何更新?](https://github.com/eeliu/php_simple_aop#how-to-reload-all-plugins)
2.更新 pinpoint collector|✘|✔
3.更新 pinpoint_php.so(pinpoint.so)|✘|✘
#### 压力测试下的性能损失
###4.3 压力测试下的性能损失

> 测试场景

@@ -249,6 +148,32 @@ MTT: Mean RTT Time
> 顺便提一下,Pinpoint是一个APM系统,但不是一个性能增强系统。目前这种损失是无法避免的
### 编者的话
##5 对于开发人员
[插件编写指南 ☚](../../Example/PHP-Readme-CN.md)
[PHP用户手册 ☚](./User%20Manual-CN.md)
[v0.1 VS v0.2+](./detail_versions.md)
## 6 已知问题
### 6.1 带有错误文件路径的异常或错误消息。
https://github.com/naver/pinpoint-c-agent/issues/99
### 6.2 如果不使用composer/autoloader,我可以使用这个版本吗?
抱歉,php-simple-aop不支持打包没有composer/autoloader的用户类(或内部类)。顺便说一下,composer挺不错的O(∩_∩)O
https://github.com/naver/pinpoint-c-agent/issues/103
### 6.3 ~为什么不支持PHP5.x? ~此问题已解决!
https://www.php.net/supported-versions.php
### 6.4 ~不支持generator函数。~ 此问题已解决!
https://github.com/naver/pinpoint-c-agent/issues/100
由于人们广泛使用composer,所以v0.2.x是我们长期支持的版本。v0.1.x在未来可能会停止更新和维护,目前我们会修复v0.1.x中的一些致命错误。
### 6.5 一些内置函数不支持AOP。
https://github.com/naver/pinpoint-c-agent/issues/102
Loading

0 comments on commit fb2adb6

Please sign in to comment.