我正在尝试更新APC中的变量,并且将尝试执行此操作的许多进程.
APC不提供锁定功能,所以我正在考虑使用其他机制......到目前为止我发现的是mysql的GET_LOCK()和php的flock().还有什么值得考虑的吗?
更新:我找到了sem_acquire,但它似乎是一个阻塞锁.
这是我的APC如何运行的链接:[已删除]
正如你所看到的,它很快就会填满,我的Cache Full Count有时会超过1000
我的网站使用Wordpress.
我注意到,每次我发布新帖子或编辑帖子时,都会发生两件事.
1)APC内存"USED"重置2)我得到了很多碎片
我试过给APC提供更多的内存(512 mb),但有时会崩溃,看来384是最好的.我还有一个Cron作业,每4小时重新启动一次apache,清除所有APC片段并使用内存.再说一次,如果APC运行了很长一段时间,我的apache会崩溃,我认为由于片段的堆积.
我应该使用apc.Filters并过滤掉一些不应该缓存的东西吗?
我真的很喜欢这种东西,所以如果有人可以用完整的说明解释,非常感谢你!
Magento除了显示白色主页外没有显示任何内容,在error_log中给出的错误是:
client denied by server configuration: /var/www/httpdocs/app/etc/local.xml
Run Code Online (Sandbox Code Playgroud)
我可以很好地访问管理区域,有谁知道为什么会发生这种情况?
我正在使用带有Doctrine 2.1的Symfony 2.0.10并且具有相当简单的查询(见下文),其中我想通过APC(版本3.1.7,为其启用1GB内存)缓存结果,useResultCache(true, 600)并保持水合模式为\Doctrine\ORM\Query::HYDRATE_OBJECT.
问题是多对多关系(Doctrine\ORM\PersistentCollection)不会被缓存,每次缓存主要查询结果时,连接的实体都被设置为null.当我设置水合模式时,相同的查询在APC中缓存得很好\Doctrine\ORM\Query::HYDRATE_ARRAY,但对我来说这是不可接受的解决方案,因为我无法重做许多模板来实现这一点.
请建议如何在APC中缓存所有已连接实体的属性?请不要指向文档,因为我认为我已经学会了解决这个问题:)
$property = $em
->createQueryBuilder()
->select('p,u')
->from('MyBundle:Property', 'p')
->leftJoin('p.users', 'u')
->where('p.id in (:id)')
->setParameter('id', 123)
->getQuery()
->useResultCache(true, 60)
->setHydrationMode(\Doctrine\ORM\Query::HYDRATE_OBJECT)
->getResult();
Run Code Online (Sandbox Code Playgroud)
class User {
/**
* @ORM\ManyToMany(targetEntity="Property", mappedBy="users", cascade={"all"}, fetch="EAGER")
*/
protected $properties;
}
Run Code Online (Sandbox Code Playgroud)
class Property {
/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="properties", cascade={"all"}, fetch="EAGER")
* @ORM\JoinTable(name="user_property",
* joinColumns={@ORM\JoinColumn(name="property_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
* )
*/
protected $users;
}
Run Code Online (Sandbox Code Playgroud) 有关APC写入失败原因的php.net文档非常不明确.什么样的场景会导致调用apc_store()失败?
有足够的可用磁盘空间,故障很多.有时商店运营会成功,有时会失败.
如何在Windows上安装APC?我使用的是PHP 5.3,Windows 7 x64.
我用了
pecl install apc
Run Code Online (Sandbox Code Playgroud)
我有
C:\PHP>pecl install apc
downloading APC-3.0.19.tgz ...
Starting to download APC-3.0.19.tgz (115,735 bytes) ............
done: 115,735 bytes 47 source files, building
WARNING: php_bin c:\php\php.exe appears to have a suffix \php.exe, but config
variable php_suffix does not match running: msdev APC.dsp /MAKE "APC - Release"
ERROR: Did not understand the completion status returned from msdev.exe.
Run Code Online (Sandbox Code Playgroud) 我有3个需要优化的Web服务器.我目前每天只有2000多名独立访问者,我想提高服务器的性能,以确保当我获得更多流量时,一切都会顺利进行.
我读过(在一些博客上)APC,memcache和Varnish是优化网站性能的最佳工具.
如果我有静态(例如条款和条件页面)和动态内容(用户设置页面),那么同时使用ALL三个是否合适?
非常感谢,J.
我需要在Windows上安装php-apc库,以便能够继续在Windows上开发我的应用程序.
我去了http://downloads.php.net/pierre/并下载了php_apc-3.1.10-5.3-vc9-x86.zip.问题是知道在zip文件中,有2个文件夹包含php apc库nts和ts文件夹!
我应该从哪个库复制到我的c:\xampp\php\ext文件夹?有什么不同?
我正在编写一个wordpress插件,其中CSS是以dinamically方式编译的,因此我已经实现了各种策略来缓存它.截至目前,缓存的首选是APC,如果安装的话.
这是我正在检查它
$is_apc_installed = function_exists( 'apc_store' )
&& function_exists( 'apc_fetch' )
&& ini_get( 'apc.enabled' );
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) === 'cgi') {
$is_apc_installed = false;
}
Run Code Online (Sandbox Code Playgroud)
但在某些安装中我仍然得到apc_fetch()总是返回false.我还应该检查以确保APC正常工作?