http://www.cnblogs.com/lh460795/archive/2013/04/06/3003105.html

在apache / bin/ab.exe  可以做压力测试,该工具可以模拟多人,并发访问某个页面.

基本的用法

ab.exe –n 10000 –c 10

-n 表示请求多少次

-c 表示多少人

如果要测试php自己的缓存机制, 需要做配置.

php.ini 文件

display_errors=On

output_buffering=Off

error_reproting= 设置错误级别

看一段代码,使用缓存时,在发送文件头之前可以显示文字.

<?php

echo“yyy”;

header(“content-type:text/htm;charset=utf-8”);

echo“hello”;

?>

PHP缓存控制的几个函数:

  1. 1 //PHP缓存控制的几个函数:
  2. 2 //开启缓存 [通过php.ini,也可以在页面 ob_start()]
  3. 3 ob_start();
  4. 4 echo "yyy";
  5. 5 header("content-type:text/htm;charset=utf-8");
  6. 6 echo "hello";
  7. 7 //ob_clean函数可以清空 outputbuffer的内容.
  8. 8 //ob_clean();
  9. 9 //ob_end_clean是关闭ob缓存,同时清空.
  10. 10 //ob_clean();
  11. 11 //ob_end_flush() 函数是 把ob缓存的内存输出,并关闭ob
  12. 12 //ob_end_flush();
  13. 13 //ob_end_flush() 函数是 把ob缓存的内存输出,
  14. 14 //ob_flush()函数是输出ob内容,并清空,但不关闭.
  15. 15 ob_flush();
  16. 16
  17. 17 echo "kkk";//=>ob缓存.
  18. 18
  19. 19 //header("content-type:text/htm;charset=utf-8");
  20. 20
  21. 21 //ob_get_contents() 可以获取output_buffering的内容.
  22. 22 //$contents=ob_get_contents();
  23. 23
  24. 24 //file_put_contents("d:/log.text",$contents);

下面来看一个实例,用缓存技术,"假如保存的缓存文件未超过30秒,则直接取出缓存文件":

  1. 1 <?php
  2. 2 $id=$_GET['id'];
  3. 3 $filename="static_id_".$id.".html";
  4. 4 $status=filemtime($filename)+30>time();//判断文件创建及修改时间距当前时间是否超过30秒
  5. 5 if(file_exists($filename)&&$status){
  6. 6 $str=file_get_contents($filename);
  7. 7 echo $str;
  8. 8 }else{
  9. 9 require_once "SqlHelper.class.php";
  10. 10 $sqlHelper=new Sqlhelper();
  11. 11 $arr=$sqlHelper->execute_dql2("SELECT * FROM news1 WHERE id=$id");
  12. 12 if(empty($arr)){
  13. 13 echo "数据为空";
  14. 14 }else{
  15. 15 /***缓存开始***/
  16. 16 ob_start();//下面的内容将存到缓存区中,显示的内容都将存到缓存区
  17. 17 echo $arr[0]['tile'];
  18. 18 echo "<br/>";
  19. 19 echo $arr[0]['content'];
  20. 20 $content= ob_get_contents();//从缓存中获取内容
  21. 21 ob_end_clean();//关闭缓存并清空
  22. 22 /***缓存结束***/
  23. 23 file_put_contents($filename, $content);
  24. 24 echo $content;
  25. 25 }
  26. 26 }
  27. 27
  28. 28
  29. 29 ?>

PHP使用缓存生成静态页面的更多相关文章

  1. 接上篇,php生成静态页面,加上页面时间缓存

    <?php require_once(dirname(__FILE__).'/include/config.inc.php'); ?> <?php $dosql->Execut ...

  2. 浅谈php生成静态页面

    一.引 言 在速度上,静态页面要比动态页面的比方php快很多,这是毫无疑问的,但是由于静态页面的灵活性较差,如果不借助数据库或其他的设备保存相关信息的话,整体的管理上比较繁琐,比方修改编辑.比方阅读权 ...

  3. .net 生成 静态页面

    .net 生成 静态页面 <!--Main.Aspx--> <%@ page language="C#" %> <%@ import namespac ...

  4. 比较详细PHP生成静态页面教程

    一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合, 也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客 ...

  5. PHP生成静态页面的方法

          在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存 等实现页面静态化,今天就以PHP实例教程形 ...

  6. PHP代码为什么不能直接保存HTML文件——&gt;PHP生成静态页面教程

    1.server会依据文件的后缀名去进行解析,假设是HTML文件则server不会进行语法解析.而是直接输出到浏览器. 2.假设一个页面中所有都是HTML代码而没有须要解析的PHP语法,则没有必要保存 ...

  7. [dedecms]隐藏栏目不生成静态页面

    重点文件在:/data/cache/inc_catalog_base.inc.php文件,里面存放的是栏目ID 先找到 /dede/sys_cache_up.php(后台更新缓存的地方),找到里面的U ...

  8. 学习MVC之租房网站(十二)-缓存和静态页面

    在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...

  9. PHP代码为什么不能直接保存HTML文件——>PHP生成静态页面教程

    1.服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器. 2.如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件 ...

随机推荐

  1. 企业DC Windows运维监控规范及C辅助监控开发实战前奏;

    春天来了,小草发芽了,花儿开了,你还在等什么? 人家都自驾游了,ruiy可还是徒步游的,并且还留着汗+油; 什么是生活,我的理解就是跟着gd生,跟着gd活,可是讲到这我又自恋了,人家开二会也没想起我来 ...

  2. 查找进程对应的PID和对应的端口号

    第一步:首先打开任务管理器.之后左键单击查看,点击下面的选择列. 第二步:之后进入如下界面,把PID勾上.这是我们就可以查看到进程的PID(process id)号了 第三步:首先我们打开DOS窗口, ...

  3. SQL2008-删除时间字段重复的方法

    ID  EMAgitation_ID    YieldDateTime 1   2                              2012-02-11 10:18:54.0002   2  ...

  4. js不验证

    给select添加了id,人家默认就有个id,id冲突导致js不验证

  5. Handlebar

    1.Handlebar中文网: http://www.ghostchina.com/introducing-the-handlebars-js-templating-engine/ 2.http:// ...

  6. Oracle- 日期加减

    加法 select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_months(sysdate,1 ...

  7. [置顶] [BZOJ]2127: happiness 最小割

    happiness: Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己 ...

  8. 关于Mysql Can't connect to mysql server on localhost(10061)的问题解决

    这个问题很烦,试了网上很多朋友的方法,还是不行,大家都知道卸载mysql再想装就不那么容易了(虽然我卸载安装无数次都成功了),好了,不废话了, 如果出现这种问题,不要急,找到mysql的安装包  例如 ...

  9. PS Studio调用.exe输出错误信息的解决办法

    在一个button_click下调用了如下外部可执行文件: $button1_Click = { #TODO: Place custom script here .\PsExec.exe \\192. ...

  10. Centos中安装vim

    Centos, 默认没有安装VIM, 所以要当然要安装了, 直接yum install vim是不行的, 首先: yum install vim* 会看到vim-enhanced这个包,没错, 我们要 ...