问题标签 [opcode-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 为什么 PHP APC 缓存丢失一直在增加
我正在使用 apc.php 检查 PHP APC 的统计信息 (http://svn.php.net/viewvc/pecl/apc/trunk/apc.php)
我在相当繁忙的服务器上有以下统计信息
问题是Misses总是在增加(鉴于文件数量有限),有没有办法检查哪些文件丢失了?
另一个问题是:缓存文件总共消耗 26.3MBytes,这是否意味着每个 Apache 子进程都使用 26.3MBytes?
php - 当 PHP 为每个请求重新编译我的源代码时,我是否会支付性能损失?
我知道 PHP 主要是一种解释性语言。PHP 解释器(Windows 中的 php.exe 和 Linux 中的 php 文件)是否在每次我的脚本执行时或仅在我更改源时进行解释?换句话说,PHP 解释器是否缓存已解释的脚本?
php - PHP APC - 为什么加载缓存的数组操作码很慢?
我正在使用 APC 来减少我的 PHP 文件的加载时间。我的文件加载速度非常快,除了一个我定义了 100 多个数组的文件。这个 270 kb 的文件需要 200 毫秒才能加载。其余的文件充满了对象、方法和函数。
我想知道:OP 代码缓存是否不适用于数组?
我的 APC 缓存应该足够大以处理我的所有类。目前我 40% 的缓存是免费的。我的命中率是99%。
APC 3.1.6
我正在使用 PHP 5.2、Apache 2 和 Windows Vista。
apache - 我应该为我的 VPS 使用 FastCGI 还是 SuPHP?
我有一个运行 Centos 的 VPS 和一个 Cpanel 安装。2 GB 内存。
它目前运行 Apache 1.3.42。我也可以使用 2.0.64 或 2.2.22,我应该升级吗?
PHP (5.3) 作为 SuPHP 运行。
我想知道我是否应该坚持当前的设置?还是我应该实现 FastCGI 并使用 PHP 操作码缓存(APC、XCache 等)?
如果可能的话,我想使用操作码缓存来加快我的页面生成时间,但是我读过在 VPS 上运行 FastCGI 会增加服务器负载。
SuPHP 与 FastCGI 的安全隐患是什么?
apc - APC 操作码缓存是否在 PHP-FPM 池/工作者之间共享?
互联网上有很多讨论,apc_cache_clear()
在 CLI 中调用不会从“web”PHP 进程中清除操作码缓存,无论它们是在 Apache 内部运行还是由 FPM 运行(请参阅如何清除 APC 缓存条目?)。作为建议的解决方案,可以创建一个调用 的简单 PHP 页面apc_cache_clear()
,然后从 CLI 调用它。Symfony 的 ApcBundle 就是这样做的。
如果apc_cache_clear()
来自 CLI 没有清空 Apache/FPM 的缓存,是否在 FPM 工作人员之间?如果我通过 HTTP 调用 /clear_apc_cache.php,它只能由 FPM 工作进程之一运行。那么,APC 操作码缓存是否真的在池和工作人员之间共享 - 更具体地说:它是否会自动从所有工作人员中清除?
php - xcache 它是如何工作的?代码覆盖率?木屐?OOM?
我在整个网络上搜索了包括XCache 网站在内的文档。
我是 PHP 操作码缓存和 XCache 的新手。我想解释一下 XCache 的工作原理。我知道它存储已编译的 php 代码,因此不需要每次都重新编译。但是 XCache 是如何知道 php 代码何时更新而导致缓存过期的呢?
我如何知道是否需要清除缓存?
XCache 是否编译和缓存服务器上的所有php 代码?如果是这样可以配置吗?
什么是木屐?OOM?我在 XCache Admin 页面界面中看到了这两个的大量数字。
在代码覆盖率查看器中...百分比是什么意思?这是已缓存代码的百分比吗?命中是否意味着已从缓存中读取的编译代码行数?行数是指代码的总行数吗?ToDo 列有什么用?为什么有些行以红色突出显示?
如果有帮助,我正在使用 PHP 5.3.2、XCache 1.3.0 和 Ubuntu 10.04。
php - PHP 性能(操作码缓存/函数波动)
背景故事
我维护了一系列(网络)应用程序,它们都使用一个大型的本土 PHP 库。其中一些应用程序是员工使用的传统桌面应用程序,但其他应用程序(也与这个问题更相关)是 PHP 网站,随着受欢迎程度的持续增长,性能正成为一个更重要的问题。
当前的 PHP 缓存方法
为了加快我们的一个网站(它是一家商店,将其视为thinkgeek.com),我使用 memcached 来缓存不需要不断动态构建的网站的某些部分(例如某个类别的产品列表)。
我们还使用 APC 的出厂默认安装作为 OPCode 缓存。
这两种方法都显着改善了网站的性能,但我非常期待在优化的道路上走得更远。
PHP中的函数波动率
我本人来自数据库背景,我非常喜欢例如 PostgreSQL 如何使用函数波动性来获得巨大的性能提升,同时保持可靠和准确的结果。
我的问题是,是否有任何 PHP 扩展允许开发人员将某些函数(或类方法)标记为IMMUTABLE
?(意味着当给定相同的输入参数时,该函数的结果总是相同的)。然后,此缓存扩展可以缓存该函数的结果,这在使用大型代码库时会带来巨大的性能提升。
一个简单的例子是一个方法,例如SomeClass::getWebsiteFooter();
它返回一些始终相同的 HTML 代码,除非网站已被更改(在这种情况下缓存将被刷新)。
这样的事情存在吗?我一直无法在市场上找到任何类似的东西。是否有任何其他可能对我的情况有益的性能改进方法?
php - 在 PHP 5.6 中将 Zend OpCache 存储为文件?
我正在尝试使用 Zend OpCache 混淆和加速我的代码,但 OpCache 似乎没有像其他旧缓存系统那样将字节码存储在文件中的常用功能。由于 OpCache 是在操作码中将文件缓存在内存中的本机方法,我想继续使用它,但我需要能够在系统崩溃的情况下隐藏我的代码。(只是另一个安全预防措施)
我有哪些选项可以将我的 PHP 文件存储为操作码或字节码中的编译代码?
编辑:我认为人们误解了我所寻找的大部分内容。请阅读我对帖子的评论。我是一名超过 12 年的专业网络开发人员,所以我对此并不陌生。我只是想稍微改变一下我的策略,看看其他人是否知道我没有想到的解决方法。
php - Nginx php-fpm 在高负载下因写入连接而阻塞
我们在debian 8系统上使用php5-fpm (5.6)运行nginx/1.6.2 。
在过去的几天里,由于更多用户访问我们的服务器,我们的负载比平时更高。大多数游客在下午 6 点至午夜之间的晚上时间来。
几天后,运行上述设置的两台不同服务器在几个小时内显示响应速度非常慢。在 Munin 中,我们看到,突然有数百个处于“写入”状态的 nginx 连接,而以前一次只有大约 20 个。
在尝试访问这些服务器时,除了远程主机上的连接超时之外,我们没有收到任何错误。我看到的所有日志都很正常。
该问题可以通过重新启动 php5-fpm 来解决。
我现在的问题是:为什么突然有数百个进程声称它们正在编写?是否有一些已知问题或我们错过的配置设置可能导致这种情况?
以下是我们看到的完整症状列表:
- 而不是 < 20 个非常快速的活动连接/秒,我们看到多达 100 到 900 个处于写入状态的连接(所有 nginx 连接都命中 php5-fpm,这些服务器不提供静态内容)php 脚本的脚本运行时间为 80 毫秒。
- 仅当 nginx 请求/s 的总量超过 300/s 时才会出现问题,然后它会从 ~350 下降到 ~250 req/s 但这 250 个显示多达 900 个“写入”连接
- 许多这些连接最终超时并且没有给出正确的结果
- 我们的日志中没有错误
- eth / 数据库流量以及 CPU 负载对应于 250req/s 的较低水平,总下降,因此没有“写入”发生 afaik。
对于设置:如上所述。我们使用 Zend 的内置操作码缓存,APCu 用于一些用户变量缓存,其中一个服务器运行一个 memcache 实例(在整个问题中运行良好),另一个运行 Redis 版本,它也运行良好,而出现问题。
任何人都可以阐明问题可能是什么?
谢谢!
ruby - 是否有 ruby 的加速器和 php 的加速器一样
我一直在寻找像 php(zend,xcache,...) 这样的 ruby 加速器,但我找不到一个,除了这个 github repo:ruby_accelerator似乎没有维护(我不知道它是否是一个操作码缓存器或代码分析工具)。
我看到了这个关于 python 的问题,这就是内置的,我想问一下 ruby:它也是 ruby 内置的吗?如果没有,有红宝石的吗?
附言
我在询问 MRI 实现的最新版本(在撰写本文时为 2.2.3),并且我不是在询问 VM,因为 zend、xcache 等不是 VM。