>백엔드 개발 >PHP 튜토리얼 >php在什么情况下需要用c扩展了,求大牛指导,说一下具体的应用场景,十分感激!

php在什么情况下需要用c扩展了,求大牛指导,说一下具体的应用场景,十分感激!

WBOY
WBOY원래의
2016-06-06 20:48:43946검색

php在什么情况下需要用c扩展了,求大牛指导,说一下具体的应用场景,十分感激!

回复内容:

php在什么情况下需要用c扩展了,求大牛指导,说一下具体的应用场景,十分感激!

  • 遇到性能瓶颈时进行性能优化,比如密集计算、大量字符串处理等等
  • 跨进程通信、共享数据,比如全局数据表、配置文件、数据库连接池等等
  • php中需要用到一些本地C库或可执行文件中的功能,这些功能又没有PHP实现,比如imagemagick这种图片处理工具

我根据实际遇到的事说一下吧,我做个两次扩展,一次是调用公司的一个ID生成程序,程序是C写的(内部有些成熟的算法,拿PHP再写一遍反而麻烦);另一次是要用到 V8JS 但是它又偏偏不能完全满足我们的需求,所以改了下源码(其实这已经不算自己扩展,还是从 PECL 拿来的)。

我觉得什么性能、进程通讯、共享数据其实都不是必须要扩展。1.你究竟需要PHP提升多少性能呢?PHP的优势在WEB开发方便,成熟的组件和框架多,而非性能 2.进程通讯有pcntl和posix,信号、管道都不在话下(不过老实说不如perl多进程来的爽) 3.共享数据找个NoSQL数据库更适合,如果需要实时处理得,消息队列之类的应用也不少。

所以,我觉得真正需要扩展的主要还是受环境所迫,有个程序自己人搞的,他偏偏就没有PHP版,你怎么办呢。当然也可能因为性能的考虑部分核心组件用C写,但是有这样要求的项目似乎极少,至少我经历的工作,如果一定要求高性能的都上分布式计算了,通过自定接口或消息队列交互数据,或者计划任务定时触发,或者任务队列批量处理,根本不会与web系统混合在一起。

生成激活码什么的,加解密的函数用c写了扩展

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:弃用ob_start~다음 기사:开源代码的目录规划问题