免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2127 | 回复: 4
打印 上一主题 下一主题

[闲聊] 为PHP大力瘦身, 看看你的php文件多大? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-31 12:27 |只看该作者 |倒序浏览
先来看看一组对比, 同样是 PHP4.4.x, 用缺省方式编译及优化编译后的差异.

修改前(含mbstring扩展) 一般肯定都在 4MB以上
-rwxr-xr-x    1 root     root      6310637 Apr  6 11:10 php
-rwxr-xr-x    1 root     root      5967262 Dec 30  2005 libphp4.so

指定选项修改后
-rwxr-xr-x    1 root     root      2079344 Aug 31 11:40 php
-rwxr-xr-x    1 root     root      2542583 Aug 31 11:40 libphp4.so

前后对比大约差 50%左右!! :p 其实主要差异在于缺省的编译选项包含了 -g 即 gdb 除错调试信息, 对于较为稳定的正式服务可以去掉 -g 参数, 作法很简单在 运行 configure 前以下面的方式进行:

  1. CFLAGS="-O2" ./configure --prefix=/usr/local .....
复制代码

其中 -O2 可以试试用 -O3 来代替, 赶快试试吧, 让你的 php 更加小巧更加快速.

该方法适用于大多数 GNU 软件包, 含apache, php5等...

-- 附言 --

瘦身几MB意味着什么呢, 对于prefork工作方式的apache来说, 每个http请求对应着一个httpd进程, 而 libphp4.so 是 httpd 进程的一部分, 光光代码空间就要好几 MB, 一般在 top 中可以看到 一个 httpd 进程所占用的内存, 一般在 14M ~ 30M 之间不等 (线程式的要多一些)

假定一个 httpd 进程使用约 20MB 内存,那么 100个进程就耗掉 2G 内存了, 操作系统在物理内存用完后就必须启用交换空间进行换页, 效率将会大大下降... 所以对于高并发的服务器来说,这里无疑成了瓶颈之一.

当然随着 httpd2.x 越来越稳定, 大部分都升级至此,一个进程带着25个线程在跑, 内存上有所缓和.

[ 本帖最后由 hightman 于 2006-8-31 12:30 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-31 15:42 |只看该作者
CODE:[Copy to clipboard]CFLAGS="-O2" ./configure --prefix=/usr/local .....

这段怎么用?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2006-08-31 16:01 |只看该作者
-rwxr-xr-x  1 root  wheel  2679349 Aug 23 12:26 /usr/local/libexec/apache22/libphp5.so*

-O就够了,够稳定,有时候-O3可能引起不稳定,桌面应用用-O3没啥,服务器我比较保守

freebsd的ports默认不会开启gdb,没这个毛病

论坛徽章:
0
4 [报告]
发表于 2006-08-31 16:09 |只看该作者
我现在 apache 2.2.3 (event mpm) + php4.4.4 感觉很良好.

sqlite 用的是 2.8.17, 之前用 2.8.14有出现过崩溃(看记录ms线程锁互斥出问题)

一般是下载最新的 php 源码包编译的吧...   至于选项起码也得 -O2 啊, 不过我用 -O3 hehe

[ 本帖最后由 hightman 于 2006-8-31 16:10 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2006-08-31 22:14 |只看该作者
win下怎么瘦?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP