时间换空间

由于系统资源是有限的,为了在有限的资源内,达成某些特定的性能目标,时间换空间或者空间换时间的方法。
时间换空间通常用于嵌入式设备,或者内存、硬盘空间不足的情况,通过使用牺牲CPU的方式,获得原本需要更多内存或者硬盘空间才能完成的工作。
下面是一个非常简单的时间换空间的算法,实现了a,b两个变量值的交换。交换两个变量的方法是使用一个中间变量,而引入额外的变量,而引入额外的变量意味着要使用更多的空间。采用下面的方法,则可以免去中间变量,而达到变量交换的目的,其代价是引用更多的CPU运算。

public class Demo {public static void main(String[] args) throws Exception {int a=3;int b=2;b=a+b;a=b-a;b=b-a;System.out.print(a+"----"+b);}
}
结果:
2----3

性能优化的关键在于掌握各部分组件的性能平衡点,如果系统CPU资源有空闲,但是内存使用紧张,便可以使用用时间换空间的策略,达到整体的性能改良,反之,CPU资源紧张,内存资源有空闲,则可以使用空间换时间的策略,提升整体性能。

空间换时间

与时间换空间的方法相反,空间换时间则是尝试使用更多的内存或者磁盘空间换取CPU资源或者网络资源等,通过增加系统的内存消耗,来加快程序的运行速度。
这种方法的典型应用就是缓存,缓存是一块额外的系统内存区,如果没有缓存,程序依然可以正常工作,但是在一般情况下,缓存中总是保存那些来之不易的数据,重新取得这些数据会花费大量的资源和时间,而通过缓存这块额外的内存,避免了频繁的资源消耗,加快了程序的运行速度。
除了缓存外,一些算法中也可以使用这样的技术。

常用优化六、时间换空间和空间换时间相关推荐

  1. 冰与火之歌:「时间」与「空间」复杂度

    算法(Algorithm)是指用来操作数据.解决程序问题的一组方法.对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消 ...

  2. iphone 扩容测试软件,六个扩大iPhone储存空间的方法,亲测有效!

    原标题:六个扩大iPhone储存空间的方法,亲测有效! 对于热爱摄影的iPhone用户来说,最担心的不是iPhone的拍照功能,而是它的储存空间.好不容易拍了一组十分满意的照片,却因为剩余内存太少而无 ...

  3. Oracle 11g常用管理命令(用户、表空间、权限)

    PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户.表空间,权限分配等.以下命令本人都验证操作过,并加上了本人的小结与说明. 1.启动oracle数据库: 从root切换到oracle ...

  4. oracle表空间状态如何离线,六步了解Oracle表空间状态

    六步了解Oracle表空间状态 本人很喜欢Oracle表空间,在工作中也很喜欢总结关于Oracle表空间状态的经验教训,下面就这个问题来详细说说吧. 1.查询Oracle表空间状态 select ta ...

  5. 正圆锥体空间方程_科学解读:什么是时间?什么是空间?理论上时空是什么?...

    时间与空间是无处不在的,但时间与空间到底是什么呢? 对于如此底层的事物,我们很难用生活中的具体概念或直观感受,去理解和描述.因为认知一个事物,往往是从底层了解其组成部分,而时间与空间显然在底层,我们的 ...

  6. 【深度学习】时间注意力模块与空间注意力模块

    注意力模块 通道(时间)注意力模块 空间注意力模块 通道(时间)注意力模块 为了汇总空间特征,作者采用了全局平均池化和最大池化两种方式来分别利用不同的信息. 输入是一个 H×W×C 的特征 F, 我们 ...

  7. RMAN使用备份按时间点传输表空间

    使用until time或者SCN来执行transport tablespace 如果在执行传输表空间操作时,对transport tablespace命令指定了目标时间,那么RMAN将在辅助实例中使 ...

  8. oracle添加表空间时间,Oracle基于表空间的时间点恢复

    1.测试环境 03:57:50 SQL> conn scott/tiger Connected. 03:57:57 SQL> 03:59:43 SQL> select * from ...

  9. Java帧率,android应用性能优化之帧率 - hellominefriend的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    转自:http://www.cnblogs.com/myzh/archive/2013/03/17/2965225.html 1.纵观全局 对于顺畅度的分析,首先要知道一个整体情况,是局部,还是全局, ...

  10. vue seo关键词设置_网站SEO常用优化技巧

    SEO(Search Engine Optimization)搜索引擎优化,简单来说,就是通过技术手段,帮助我们的网站上首页.不同的搜索引擎,排名算法也不尽相同,导致了各项参数的权重比值也就不一样,但 ...

最新文章

  1. 智能家居隐私问题再遭热议:涉案设备中的数据究竟受不受保护?
  2. 【PAT甲级 找到出现次数过半的数字】1054 The Dominant Color (20 分) C++
  3. Apache CXF负载平衡和故障转移
  4. Qt文档阅读笔记-继承QProgressDialog使得Dialog更加灵活
  5. dede自定义表单html,织梦自定义表单制作在线订单详细解说
  6. linux虚拟机网络配制方法及遇到问题的解决方法
  7. 英特尔回应杨笠代言争议;天弘基金称已处理在支付宝上「无故扣款」问题;Eclipse 4.19 发布 | 极客头条...
  8. 001_02-python基础习题答案
  9. 服务器系统小米随身wifi,Mac OS10.13正常使用的小米随身WIFI无线驱动 | 陳松's 博客...
  10. 区块链智能合约----Solidity状态修饰符view、pure
  11. ANDROID集成支付宝SDK_APP应用支付宝开发DEMO
  12. python使用numpy的np.mod函数计算numpy数组除以某一特定数值剩余的余数(remainder)、np.mod函数和np.fmod函数对负值的处理方式有差异
  13. 阿里云部署SVN服务器
  14. java毕业设计教学平台mybatis+源码+调试部署+系统+数据库+lw
  15. SDR软件移步BG1ICA.vicp.net:8888
  16. PR 2020 关于驱动程序更新
  17. Cocos2D-x 入门(1)
  18. OPS TPS RPS 吞吐量 查询率 事物数目 每秒查询率 每秒处理事物数目
  19. 表格识别论文阅读——《Robust Table Detection and Structure Recognition from Heterogeneous Document Images》
  20. ubuntu 20.04 更改第一次登录紫色背景(终于有办法修改啦!!!)

热门文章

  1. 【转载】Altera FPGA使用通用SPI Flash(代替EPCS的方法)
  2. 关于EPCS系列芯片的说明
  3. 分享一个我常用的信息差赚钱渠道
  4. JAVA Map类compute方法详解及样例
  5. java 设置excel颜色_Java 设置Excel图表背景填充(颜色、图片填充)
  6. win7 OneNote不能登录一直登录
  7. 解决OneNote for Windows 10 不能打开onedrive上已有笔记本问题
  8. redis 源码全解析
  9. Android录屏解决方案调研
  10. 编程语言常见符号合集,赶快收藏。