我们有一个由老员工维护的网站,它似乎由Zend Guard编码,包括所有备份.
我对Zend Optimizer有一点了解,但从未考虑过它的源代码保护,因为我知道最终需要为解释器解码字节码,并确保人们可以使用某些软件轻松解码优化文件.
现在我需要解码一些文件,除了一些"付费服务"之外我找不到任何东西.我们拥有代码的所有权,现在无法进行任何更改和调试.我怎样才能解码我们的文件?
有没有人有使用PHP加速器(如MMCache或Zend Accelerator)的经验?我想知道是否使用其中任何一种都可以使PHP与更快的网络技术相媲美.此外,是否有使用这些的权衡?
我有一位同事正在研究基于PHP的应用程序的操作码缓存/ Zend Acceleration(我总是认为这些是相同的事情).他的基准测试似乎表明,如果我们用require_once包含我们的(大)类库,我们就没有看到性能优势,但我们在使用include_once时看到了性能优势.
这对我们两个人来说都很腥,但我没有时间自己查看我们的基准测试方法,而且我的同事对鱼的气味比我更容忍.:)
有没有人碰到这样的事情?如果不是,那么通过从include_once切换到require_once,对可能导致性能出现的其他事物的任何想法都会增加?
除了Zend Optimizer之外,Zend-Framwork运行得更快的最佳方法是什么?
如果我没记错的话,在PHP中解析.ini文件需要很长时间.因此我将其缓存(文件在请求期间不会更改)
还有其他方法可以改善ZF的表现吗?
说到PHP,我想问一下这两者在性能上有没有区别:
$name=($IsBoy)?"George":"Mary";
Run Code Online (Sandbox Code Playgroud)
对比
if($IsBoy)
{
$name="George";
}
else
{
$name="Mary";
}
Run Code Online (Sandbox Code Playgroud)
这两个会导致不同的操作码吗?
如果是,性能上会有什么理论上的差异吗?(当然忽略这两个需要读/编译/解释的时间)
如果是,那么像 zend 优化器这样的优化器是否会利用这一点并自动进行任何重新安排?
ps 如果您认为我的“全长手” if-then-else 代码太复杂,请提供一个最基本的代码示例并对此进行回答。
更新:
我希望这个问题非常清楚,但似乎人们没有得到这个信息。这个问题是关于性能上的理论(......但真实和可测量的)差异(这就是我在理论中应用粗体和斜体的原因)。请不要回答说哪种编程风格更具可读性,而且这太吹毛求疵而不必担心性能。
ps 2:通过强调“理论”这个词,我试图避免“别担心它不值得麻烦,它只是几纳秒”类型的答案。
我按照他们的指南http://kb.zend.com/index.php?View=entry&EntryID=424在我的php.ini中启用Zend Optimizer,但它无法正常工作.
在php.ini我有
zend_extension_ts = "ZendLoader.dll"
Run Code Online (Sandbox Code Playgroud)
php.ini正确加载,在我遇到问题之前,Failed loading ZendLoader.dll
但后来我发现我需要使用zend_extension_ts
而不是zend_extension
因为我的php是TS版本.
现在PHP没有显示任何错误,但在phpinfo()或PHP -m中,我没有看到任何zend扩展加载.有关如何使其工作的任何建议?
php ×7
caching ×2
encryption ×1
opcache ×1
opcode ×1
optimization ×1
performance ×1
php-5.4 ×1
php-opcode ×1
shorthand-if ×1
zend-guard ×1