缓冲

原创 2015年11月17日 21:19:56

缓冲

缓冲区是一块特定的内存区域。开辟缓冲区的作用是通过缓解应用程序上下文之间的性能差异,提高系统性能。
缓冲可以协调上层组件和下层组件之间的性能差。


缓冲最常用的场景就是提高io的速度。
当使用filewriter时,进行文件写操作的代码如下:

Writer writer = new FIleWriter(new File("file.txt"));
long begin = System.currentTimeMillis();
for(int i = 0;i < CIRCLE; i++){
    Writer.write(i);}
writer.close();
System.out.println("testFileWriter
spend:"+(System.currentTimeMillis()-begin));

为了进行IO优化,可以为FileWriter加上缓冲:

Writer writer = new BufferedWriter(new File("file.txt"));
long begin = System.currentTimeMillis();
for(int i = 0;i < CIRCLE; i++){
    Writer.write(i);}
writer.close();
System.out.println("testFileWriterBuffer
spend:"+(System.currentTimeMillis()-begin));

以上代码使用BufferedWriter为FileWriter对象增加缓冲功能。

缓存 cache

缓存也是一块为提升系统性能而开辟的内存空间。缓存的主要作用是暂存数据处理结果,并提供下次访问使用。对于频繁的数据请求会耗尽CPU资源, 在缓存中保存数据,可以有效提升系统响应时间。
最为简单的缓存可以直接使用HashMap实现。问题是:何时清理无效的数据;如何防止缓存数据过多而导致内存溢出。一个稍好的替代方案是直接使用WeakHashMap,它使用弱引用维护一张哈希表,从而避免了潜在的内存溢出问题。


目前有很多基于Java的缓存框架

  • EHCache Hibernate默认的数据缓存解决方案
  • OSCache OpenSymphony用于缓存任何对象,甚至是部分JSP页面或者HTTP请求
  • JBossCache 由JBoss开发,用于JBoss集群间的数据共享缓存框架。
版权声明:本文为博主原创文章,未经博主允许不得转载。

JS 运动学习(二)缓冲运动

缓冲运动就是速度会逐渐变慢的过程,看起来比较弹性,比匀速运动看起来爽,适用范围也广。...
  • pinger1225
  • pinger1225
  • 2014年08月22日 18:16
  • 1316

c语言缓冲输入和非缓冲输入的分析(stdin和stdout流的应用,getchar,getch的区别)

一、缓冲输入和非缓冲输入的实例 1.1、缓冲输入实例 1.2、非缓冲输入实例 效果:按下一个字符,控制台屏幕就显示该字符。当按下‘#’字符时候,则提示press any key to contin...
  • ming2453755227
  • ming2453755227
  • 2014年03月16日 01:36
  • 1564

标准的I/O缓冲:全缓冲,行缓冲,无缓冲

今天在学习进程时遇到关于一个I/O缓冲区的的问题,和大家分享一下,首先举个简单的例子: #include int main() ...
  • whoamiyang
  • whoamiyang
  • 2016年03月14日 10:02
  • 753

【C语言】缓冲文件系统和非缓冲文件系统

C 语言所使用的磁盘文件系统有两大类:一类称为缓冲文件系统,又称为标准文件系统;另一类称为非缓冲文件系统。 缓冲文件系统的特点是系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区...
  • icemelody5316
  • icemelody5316
  • 2014年10月04日 22:12
  • 1024

C的全缓冲、行缓冲和无缓冲

1.简介 基于流的操作最终会调用read或者write函数进行I/O操作。为了使程序的运行效率最高,流对象通常会提供缓冲区,以减少调用系统I/O库函数的次数。 在Linux中,缓冲方式存在三种,分...
  • K346K346
  • K346K346
  • 2017年03月19日 11:58
  • 968

Android UI开发第十五篇——分享一个登录缓冲界面

今天在网上发现了一个很漂亮的缓冲界面,在这里分享一下。主要还是用的android Anim。java code:public class Main extends Activity { privat...
  • xyz_lmn
  • xyz_lmn
  • 2011年10月27日 21:21
  • 12165

PHP输出缓冲控制

简介 说到输出缓冲,首先要说的是一个叫做缓冲器(buffer)的东西。举个简单的例子说明他的作用:我们在编辑一篇文档时,在我们没有保存之前,系统是不会向磁盘写入的,而是写到buffer中,当buffe...
  • qq_27682041
  • qq_27682041
  • 2017年06月16日 15:48
  • 617

js动画效果之缓冲动画

此案例基于之前的案例,上两个例子两个物体所做的都是匀速运动,就像火车进站一样,如果在快到达目的地时速度慢下来,视觉效果会更好,就之前的代码稍微改革速度就好了~下面是效果图对比:(由于上传的是.gif格...
  • T_tq_bnsg_bs_ll
  • T_tq_bnsg_bs_ll
  • 2017年04月13日 08:59
  • 433

MySQL 5.6 插入缓冲测试

设置autocommit = off innodb_flush_log_at_trx_commit = 0 innodb_buffer_pool_size = 134217728 innodb_cha...
  • wzy0623
  • wzy0623
  • 2016年12月28日 08:46
  • 385

UNIX里面关于标准IO的几种缓冲机制

编写背后:国嵌的那段时间,老范曾让我们帮回答下论坛某个会员的问题,代码问题:出不来结果,没任何打印信息; 代码如下():   #i nclude main() {  printf(" if...
  • yx_l128125
  • yx_l128125
  • 2012年03月20日 22:24
  • 1334
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:缓冲
举报原因:
原因补充:

(最多只允许输入30个字)