• 关于 apc缓存 的搜索结果

回答

PHP的编译并不是很耗时 我之前的文章也介绍过, PHP的编译是线性的编译过程, 不做任何优化, 所以这个过程非常之快. 而编译和执行分离这个特性的提出着认为分离以后, 可以省掉编译过程, 会有很大的性能提升开发速度 PHP的一个优点就是开发/部署/调试非常方案, 更改立即见效, 而如果我们采用了编译/执行分离以后, 那么更改就需要首先编译, 然后部署, 然后才能生效, 这对于开发来说, 并不是什么好事我们有APC/Zend O+等第三方的代码缓存工具 APC等第三方的代码缓存工具(Opcodes Cache)已经相对比较成熟, 并对开发者透明, 大家只要在服务器上安装了APC, 就可以得到编译/执行分离的性能提升. 比如编译/执行分离这个方案是有人在做的, 但是还不成熟等等 要实现编译和执行分离, 其实我们借助APC就能做到, APC提供了一族apc_bin_dump, apc_bin_load函数, 能把Opcodes缓存导出到外部文件中 经过我对apc_bin系列函数的重新梳理, 修复以后, 这部分功能现在终于可以正常工作了, 那么基于这些函数, 我们就可以实现编译执行分离 思路很简单, 在本地通过apc_bin_dumpfile把我们的php文件, 导出成bin文件, 然后在服务器上通过apc_bin_loadfile来读取这些bin文件. 就可以实现编译和执行分离啦, 一个简单的示意代码如下: $ find ./ -name "*.php" -exec php -r "apc_bin_dumpfile(array('{}'), array(), '{}' . '.bin');" \; 然后在服务器端的文件自动加载部分 <?php function __autoload($name) { /*首先计算出文件名字*/ $file = 根据类名得到PHP文件路径(); if (!file_exists($file)) { //文件不存在, 说明我们还没有load过, 那么创建一个空文件. file_put_contents($file, ''); apc_bin_loadfile($file . '.bin'); } else { //我们已经load过了, 理论上应该已经被服务器的APC缓存处理Cache住了. } include ($file); } 当然, 这里只是一个简单的示意, 如果要实际使用, 你还要考虑缓存被换出的可能, 那么一个解决方案就是设置俩个自动加载函数, 第一个如上, 第二个如果被调用, 就说明缓存被换出, 导致include了一个空文件, 于是就再次load一次bin文件就可以了 当然, 你也可以把所有的文件打包到一个bin文件中, 然后只load一次, 后续就交给服务器上的APC Cache来做就可以了. 但是这里有一个要注意的点就是, 那么对于这部分希望代码保护功能的人来说, 就可以使用APC来免费的完成这些事情了. 不过, 这个方案确实有点丑陋, 后续可以考虑在APC上增加直接对bin文件的支持. 

一枚小鲜肉帅哥 2020-05-31 20:56:17 0 浏览量 回答数 0

回答

APC 插件曾经包含字节码和对象缓存功能,但是自从 Zend 官方推出了 Opcache 后,APC 开发者就将字节码缓存功能删掉了,推出了 APCu 只保留对象缓存。 所以两者可以兼容,但是对象缓存需要PHP程序的开发支持。

聚小编 2019-12-02 00:43:20 0 浏览量 回答数 0

问题

PHP7 &amp; APCu 的搭配和优化

妙正灰 2019-12-01 21:14:27 13358 浏览量 回答数 1

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

问题

关于 PHP 的编译和执行分离:报错 

kun坤 2020-06-08 16:00:00 1 浏览量 回答数 1

问题

php启用apc后还会有php代码的io吗?

吴孟桥 2019-12-01 19:47:50 1866 浏览量 回答数 1

问题

php加速器APC,XCache,eAccelerator哪种比较好?

落地花开啦 2019-12-01 19:52:45 1010 浏览量 回答数 1

问题

LAMP php apc定时清理:报错

kun坤 2020-06-06 11:45:41 0 浏览量 回答数 1

问题

【申精】阿里云服务器LNMP环境WordPress终极加速方案

铂金主题 2019-12-01 21:37:09 15636 浏览量 回答数 6

回答

Apc 是 字节码+对象缓存APCu 仅仅只是对象缓存,所以不用担心

妙正灰 2019-12-02 01:38:46 0 浏览量 回答数 0

回答

wp缓存静态插件 可以优化很多 再加上APC或者xchace等动态缓存 让网站快起来

看头像 2019-12-02 02:03:55 0 浏览量 回答数 0

回答

Nginx+PHP-fpm应该性能更好一些。再给php加上apc缓存。这个并发应该不是难事。###### 你问的这个问题,其实没有意义。 nginx php-fpm本身是没有性能瓶颈的,性能的瓶颈在于应用程序本身。 高速公路再通畅,但让老牛破车在其上行驶,能飞跑起来吗? ######500并发啥都行。######又不高,默认的就可以###### 引用来自“玛雅牛”的答案 Nginx+PHP-fpm应该性能更好一些。再给php加上apc缓存。这个并发应该不是难事。 PHP5.5自带ZendOpcache,编译时加入--enable-opcache即可。 PHP5.4可以直接用Pecl安装: pecl install ZendOpcache  APC的作者鸟哥Xinchen Hui已经转而维护ZendOpcache了: http://pecl.php.net/package/ZendOpcache ######我会直接用Ubuntu Server 14.04的,beta版 PHP 5.5.9,自带OpCache

爱吃鱼的程序员 2020-06-04 17:10:31 0 浏览量 回答数 0

问题

【缓存选择apc还是memcached?】

奋斗 2019-12-01 21:35:20 5339 浏览量 回答数 1

回答

直接把php  改成 java  php的快速   不能抹杀 ######保护php代码不错...至于说性能提升 不明显######php in jvm 吧.###### 引用来自“imcj”的答案 php in jvm 吧. 都说了有 我们有APC/Zend O+等第三方的代码缓存工具 ###### 引用来自“李惟”的答案 引用来自“imcj”的答案 php in jvm 吧. 都说了有 我们有APC/Zend O+等第三方的代码缓存工具 缓存ByteCode神马的不彻底啊,改造下解析器,可以直接加载byte code不是更彻底? ######非要把php搞成java,何苦?###### ######回复 @郝波 : 他自己说的嘛。。。######鸟哥发现了你就死了######php如果搞成java那样,一点优势都没有。 何苦把php往死里搞啊。。。######不错,顶起来,文章慢慢看。。。 ######积分哪里搞 想顶 顶不了

kun坤 2020-06-08 16:03:07 0 浏览量 回答数 0

问题

WP-Lcache 更好的 WP 对象缓存解决方案

妙正灰 2019-12-01 21:56:48 2717 浏览量 回答数 0

回答

1.静态文件缓存2.扩展比如apc, eAccelerator3.memcache 等

落地花开啦 2019-12-02 02:45:44 0 浏览量 回答数 0

回答

您好 建议您安装PHP缓存拓展 如ZendOpCache,XcaChe ,APC

西秦说云 2019-12-01 23:17:25 0 浏览量 回答数 0

回答

您好 您使用的是云虚拟主机还是ECS? 如果是虚拟主机,建议直接联系工单,检查主机。 如果是ECS,可能需要进一步详细日志 ------------------------- 您好您可以给您的PHP加上APC缓存及其他类型的缓存,提升PHP速度

西秦说云 2019-12-01 23:43:22 0 浏览量 回答数 0

回答

这个性能不是和 php-fpm 对比,最新的5.3.3+已经将fastcgi模式作为标准发布,加上APC(byte code cache),前置 nginx,性能轻松超过java。 实际上,php早就是编译型语言了 不过web应用的性能瓶颈在数据库###### 这个应该主要是为了方便搭配Java Web用的吧,我怎样也不相信会比原生PHP引擎性能和兼容性好。###### 多语言系统当中,比较建议松耦合,用简单的json数据进行交互即可 代码之间不需要建立任何的相关性###### pf,我在学习呢###### 我自己粗略对比了下,对PHP5.3的命名空间支持很混乱,基本涉及到命名空间的部分都要大幅度改写。 性能比无opcode缓存的PHP提升点点,不是很多。比开启了APC的PHP差的远。 现在有几个用PHP不开启APC?我个人认为这个价值不大。貌似有连接池 drupal在php开启apc下只能支持每秒5个请求。当然不开启apc,能支持每秒2个就已经很难了。 drupal在resin下,用解释模式可以达到每秒10个请求,编译模式可以达到每秒15个请求。这还是resin用debug方式编译的情况下。 这样低效的东西,我想价值也就用来学习的了。

kun坤 2020-05-26 21:17:02 0 浏览量 回答数 0

回答

如果你装了apc这类缓存opcode的扩展,就肯定是存成php快,否则就是内存快。

落地花开啦 2019-12-02 02:42:22 0 浏览量 回答数 0

问题

centos 6.3+apache+php+apc+memcache 性能这么低,不知道怎么优化了。

kun坤 2020-06-07 00:33:20 2 浏览量 回答数 1

回答

这个性能不是和 php-fpm 对比,最新的5.3.3+已经将fastcgi模式作为标准发布,加上APC(byte code cache),前置 nginx,性能轻松超过java。 实际上,php早就是编译型语言了 不过web应用的性能瓶颈在数据库###### 这个应该主要是为了方便搭配Java Web用的吧,我怎样也不相信会比原生PHP引擎性能和兼容性好。###### 多语言系统当中,比较建议松耦合,用简单的json数据进行交互即可 代码之间不需要建立任何的相关性###### pf,我在学习呢###### 我自己粗略对比了下,对PHP5.3的命名空间支持很混乱,基本涉及到命名空间的部分都要大幅度改写。 性能比无opcode缓存的PHP提升点点,不是很多。比开启了APC的PHP差的远。 现在有几个用PHP不开启APC?我个人认为这个价值不大。######貌似有连接池 ###### drupal在php开启apc下只能支持每秒5个请求。当然不开启apc,能支持每秒2个就已经很难了。 drupal在resin下,用解释模式可以达到每秒10个请求,编译模式可以达到每秒15个请求。这还是resin用debug方式编译的情况下。 ######这样低效的东西,我想价值也就用来学习的了。

montos 2020-05-30 10:46:33 0 浏览量 回答数 0

回答

这个性能不是和 php-fpm 对比,最新的5.3.3+已经将fastcgi模式作为标准发布,加上APC(byte code cache),前置 nginx,性能轻松超过java。 实际上,php早就是编译型语言了 不过web应用的性能瓶颈在数据库###### 这个应该主要是为了方便搭配Java Web用的吧,我怎样也不相信会比原生PHP引擎性能和兼容性好。###### 多语言系统当中,比较建议松耦合,用简单的json数据进行交互即可 代码之间不需要建立任何的相关性###### pf,我在学习呢###### 我自己粗略对比了下,对PHP5.3的命名空间支持很混乱,基本涉及到命名空间的部分都要大幅度改写。 性能比无opcode缓存的PHP提升点点,不是很多。比开启了APC的PHP差的远。 现在有几个用PHP不开启APC?我个人认为这个价值不大。######貌似有连接池 ###### drupal在php开启apc下只能支持每秒5个请求。当然不开启apc,能支持每秒2个就已经很难了。 drupal在resin下,用解释模式可以达到每秒10个请求,编译模式可以达到每秒15个请求。这还是resin用debug方式编译的情况下。 ######这样低效的东西,我想价值也就用来学习的了。

kun坤 2020-06-06 17:42:58 0 浏览量 回答数 0

问题

使用MediaWiKi搭建百科站点

寒喵 2019-12-01 21:37:31 9223 浏览量 回答数 0

问题

PHP和ZEND模块和缓存模块三者版本的问题

云代维 2019-12-01 21:39:20 9419 浏览量 回答数 1

回答

apc 加速php 这个可以按倒第二胎 memcache 加速数据库的  你可以选择阿里云的ocs  免费的  缓存 加速一下数据库 要安装的话 可以都安装到第二台

小猪猪 2019-12-02 01:40:40 0 浏览量 回答数 0

回答

用法就不对,APC只适合缓存少量的、固定大小的、高频率访问的数据,比如配置文件。那些会增长的缓存还是用memcached或者redis来做吧。######vps 没必要这么用。 ######不用apc?######满了就ssh不上去了?为什么?比较好奇。。。ssh不上去那你怎么办?在控制面板重启系统?######回复 @勇者天空 : 学到了######回复 @xue哥 : openvz的内存按分配统计不按实占, 就算只占1mb,你申明64mb,它就算64mb。一般一个512mb的openvz也就相当于150~200mb不到。 而且很多东西在openvz这种伪vps下会出事,要是不想以后出现数据库爆掉无法恢复这类惨绝人寰的事,趁早换虚拟主机或者其kvm/xen/vmware这类真正的vps才是正道######对 openzv######vps的话文件吧,毕竟你得内存昂贵

kun坤 2020-06-06 11:45:48 0 浏览量 回答数 0

问题

Web 缓存的陷阱 400 请求报错 

kun坤 2020-05-29 17:33:24 0 浏览量 回答数 1

回答

socket可以共享,通过 pfsockopen或者stream_socket_client+STREAM_CLIENT_PERSISTENT都可以打开一个持久的socket链接。但是对象多个会话无法共享######不用保存链接,直接调用pfsockopen即可######我是指同一个会话,不同的http请求之间。 socket的持久连接怎么共享?连接句柄保存到session吗?######php没有java的application全局对象实例,只有session和request级别的共享数据 ######所以我想是不是可以把对象序列化后存到session,然后再反序列化回来,不知道行不行?###### php 在 请求开始的时候打开session,在请求结束后回写session,所以并发的两个请求对session的操作是各做各的。 你想操作共享数据可以看看这个Shmop,也可以操作redis之类的缓存。 ###### 看了你上一个帖子,嗯,还是放弃吧少年,你可以了解下PHP的资源类型,句柄指向的资源都关闭了,你序列化反序列化又有什么意义呢? ######回复 @淫监会主席 : 那你可以开一个php_cli来转接啊,不用php也行,因为php可能会有内存泄漏之类的问题。######回复 @xia-yongsheng : 不是我一定要,是业务需要这样子!C++的服务器又没有考虑到php做不到!######回复 @淫监会主席 : 不可以。你为何一定要这样?######回复 @xia-yongsheng : 我可以把stream资源缓存起来共享吗?######回复 @淫监会主席 : 这个不会关闭只是在一个PHP进程内能用,你确定每次请求都是进入这个进程?你可以去了解php各个sapi下的module_init module_shutdown,以及request_init,request_shutdown的关系###### PHP是一门stateless的语言。所以在各个HTTP请求间共享一个实例,默认是不可以的。 可以借助redis,memcahce等插件,持久化需要在多个HTTP请求间共享的数据。我自己经常使用apc。 // 在一个脚本中放入 apc_add('shared', array('foo' => 'bar')); // 在另一个脚本里取出 $shared = apc_fetch('shared'); ######你这个apc是缓存opcode的扩展吗?######保存到数据库中,文件中都可以。上面提什么apc, memcache,就是在误导楼主了。######object通过serialize序列化成string,然后保存到会话变量中: $_SESSION[' instance'] = serialize($object); 在使用这个会话(PHPSESSID)发出的其他http请求反序列化获取对象: $object = unserialize($_SESSION[' instance']);

爱吃鱼的程序员 2020-06-03 20:34:31 0 浏览量 回答数 0

问题

NoSQL对比阿里云OTS、OCS、Redis如何选择

龙吟风 2019-12-01 21:59:37 9153 浏览量 回答数 5

回答

优化大致可以分为以下方面,按照执行难易程度和对当前项目影响排序:MySQL参数优化:可以通过show variables;命令和show status;命令组合来综合分析,可调整的项目根据使用的存储引擎和项目瓶颈具体情况千差万别,需要具体问题具体分析,如果想从这方面入手,建议把问题提得更具体一点;SQL查询优化和索引优化:你可以打开慢日志记录,将需要消耗太多时间的查询记录下来,然后分析相应的SQL语句是否写的不合理,不合理就改了;再到数据库中查表结构,看是否索引设置不合理(一般where语句中的常用字段和排序字段应该加上合适的索引);增加缓存层:可考虑在MySQL与应用层中间加一个缓存层,如APC、Memcached、Redis等等,将经常使用而更新较少的数据放到缓存层中,可以很好的减轻数据库压力;优化表结构:首先这个代价稍大,可能要重新灌数据之类的,代码修改可能也会比较多,看之前的封装性好不好了。主要是根据业务需要,看是否之前的表结构有不合理的地方,比如你使用了很多但是又无法排除的join查询;分库、分表、主从分离:分库是把数据库从1个逻辑库拆分到多个逻辑库,或从1个服务器拆分到多个服务器,分表是将一个表拆分为多个表,甚至是多个物理服务器的不同表;主从分离是将读、写完全分离到不同的数据库服务器;这个方案跟4一样,也是代价比较大,但是可持续性很好,项目到达一定的数量级,必须走这一步;自己定制MySQL:开源的,可以根据自己特殊业务需要定制,太高端了点点,总之有这种可能,没搞过...

西秦说云 2019-12-02 01:33:16 0 浏览量 回答数 0