如何使用缓存结果加速PHP执行?

时间:2016-06-26 19:10:17

标签: php caching nginx opcache

我正在使用PHP-FPM 5.6版本。

php -v显示了那里的OPcache。

我有一个PHP脚本,它接受参数并始终为我提供相同的Alias HTML输出。

脚本执行不涉及与MySQL的任何连接。

在Chrome开发者工具中,我发现执行时间为2.2k

我发现这相对较慢。

我想缩短执行时间。

鉴于OPcache适用于此版本的PHP,我可以使用它来缓存我的PHP脚本执行结果,以加快响应时间吗?

或者是否有替代方法?

要在900msphp.ini/etc/php.d/10-opcache.ini进行调整的任何配置?

如何在需要时清除缓存的结果?

1 个答案:

答案 0 :(得分:3)

我知道这不能直接回答你的问题,但它可能有用。衡量执行时间的方法可能涉及这两个功能:

public class MatasActivity extends AppCompatActivity {
ImageView imageCode;
TextView imageCodeNumber;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.picked_card);
    String message = "";

    try {
        byte[] byteArray = getIntent().getByteArrayExtra("image");
        Bitmap myBitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

        String number = getIntent().getExtras().getString("number");

        imageCode = (ImageView) findViewById(R.id.imageCode);
        imageCode.setImageBitmap(myBitmap);

        imageCodeNumber = (TextView) findViewById(R.id.imageCodeNumber);
        imageCodeNumber.setText(number);
    }
    catch (Exception e) {
        message = e.getMessage();
    }
}

在脚本的开头,您可以存储开始时间:

function getMicroTime()
// return time in whole seconds with microseconds
{
   return microtime(TRUE);
}


function getUserTime()
// this clock only runs when we have CPU cycles, so it runs slower that the normal clock
// use this to accurately time the excution time of scripts instead of the above function
{
  $usage = getrusage();
  return $usage["ru_utime.tv_sec"]+0.000001*$usage["ru_utime.tv_usec"];
}

这样,最后你可以回应执行时间:

$startMicroTime = getMicroTime();
$startUserTime  = getUserTime();

同样,这不能回答你的问题,但它可能有用。好的,要使其成为有效答案,请在此处阅读:

https://www.addedbytes.com/articles/for-beginners/output-caching-for-beginners/