现有方法,对于每一次访问,采用
$handle = fopen($fn, "a");
fwrite($handle, $message);
fclose($handle);
老大说这样效率太低。是否把$message做个缓存,到了一定数量再写文件会效率高一些?
或者还有什么其他更好的办法?

解决方案 »

  1.   

    这样子做的效率是很低,如果访问量高肯定会出问题,为什么要自己开发统计系统呢,可以在网上找个现成的,只要做好配置就好了,像是www.vdoing.com自己去看操作去。
      

  2.   

    利用error_log函数最高效error_log("内容", 3, "/date.dat");
      

  3.   

    自己用SSH写个脚本交给数据库来操作呗
      

  4.   

    error_log函数也是一种方法,插入到数据库也行。你说的缓存方法不行,一般的数据缓存还不是读写文件了。
      

  5.   

    除了写内存,fopen和 fclose是最高效的方式了。
    如果实在要降低IO,用memcache先记录吧,然后在系统空闲或者缓存满的时候一次写入磁盘。但是这样可能会丢数据。