Skip to content

Commit

Permalink
学习3.1节
Browse files Browse the repository at this point in the history
  • Loading branch information
wuleying committed Aug 19, 2014
1 parent 122b523 commit a19276e
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions PHP源码学习笔记/PHPBOOK/03.内存管理.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,20 @@
3.1 内存管理
---

+ strdup() 函数用来复制一个字符串
> 注意:在 PHP 内核中,大多数情况下都不应改直接使用 C 语言中自带着 malloc、free、strdup、realloc、calloc 等操作内存的函数,而应使用内核提供的操作内存的函数,这样可以由内核整体统一的来管理内存。
+ Free the Mallocs
> 在书写代码时需要保证在层层嵌套调用中对某块内存的使用都是正确的,且会及时释放的。
+ 错误处理
> 为了实现从用户端(PHP语言中)跳出,需要使用一种方法来完全跳出一个活动请求。
> 这个功能是在内核中实现的:在一个请求的开始设置一个跳出地址,然后在任何 die() 或 exit() 调用或在遇到任何关键错误 (E_ERROR) 时执行一个 longjmp() 以跳转到该跳出地址。
> 当 php_error_docref 函数被调用的时候便会触发内核中的错误处理机制,根据错误级别来决定是否调用 longjmp 来终止当前请求并退出 call_function 函数,从而 efree 函数便永远不会被执行了。
+ Zend 内存管理器
> Zend Memory Manager,简称 ZendMM、ZMM
links
---

Expand Down

0 comments on commit a19276e

Please sign in to comment.