作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
并感谢您查看问题。
背景
我有几台机器在很短的时间内连续生成多个(最多 300 个)PHP 控制台脚本。这些脚本运行很快(不到一秒)然后退出。所有这些脚本都需要对大型 trie 进行只读访问。每次运行每个脚本时将其加载到内存中的成本非常高。服务器运行Linux。
我的解决方案
创建一个 C 守护进程,将特里结构保存在内存中并接收来自 PHP 客户端的请求。它将接收来自每个 PHP 客户端的请求,在内存结构上执行查找并响应答案,从而避免 PHP 脚本执行该工作。请求和响应都是短字符串(不超过 20 个字符)
我的问题
我对 C 守护进程和进程间通信非常陌生。经过大量研究,我将选择范围缩小到消息队列和 Unix 域套接字。消息队列似乎足够了,因为我认为(我可能错了)它们将守护进程的所有请求排队,以串行方式回答它们。不过,Unix 域套接字似乎更易于使用。但是,我有各种问题无法找到答案:
最佳答案
我怀疑 Thrift是你想要的。您必须编写一些胶水代码来执行 PHP <-thrift-> C++ <-> C,但这可能比自己编写代码更健壮。
关于php - 如何在 PHP 客户端和 C 守护程序服务器之间进行 IPC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746207/
我是一名优秀的程序员,十分优秀!