APC的工作原理是将PHP文件中的操作码存储在共享内存中。当PHP与web服务器(例如Apache)一起使用时,共享内存具有较长的生命周期。当从命令行调用时,将为每个进程创建和销毁APC缓存。我有一个理论,如果PHP进程是forked的,那么使用APC将会有好处(使用pcntl_fork(),大概可以使用相同的操作码缓存)。这可能只适用于包含在fork之后的文件。php // parent
in
我使用mod_fcgid和Xcache3.0.3,PHP5.4.18。我知道由于mod_fcgid的设计,我不能使用公共的共享内存,所以每个php-cgi进程在其生命周期中都使用自己的缓存。当我打开top并检查php-cgi进程时,我看到以下内容:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND每次刷新管理页面时,我都会看到另一个进程的数据。但当我检查top时,该进程<
处理此请求的线程将在整个页面生命周期中被占用。由于线程是有限的资源,采用异步的I/O方式进行编程总是更好的方法。也就是说,ASP.NET将分配线程来使用回调函数调用BeginXXXX方法。最近,我有机会探索了其他web开发解决方案,如PHP和Ruby on Rails。令我惊讶的是,这些解决方案没有对应的异步编程模型。在整个生命周期中,每个请求都由一个线程或进程处理。也就是说,在发送最后一位响应之前,线程或进程已被占用。
与异步()类似,但基线是总有一个线程或进程被请求占用。这