内存

几种常见的存储设备

  1. ROM(Read-Only Memory):只读存储器。是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,并且资料不会因为电源关闭而消失
  2. RAM(random access memory):随机存取存储器,又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
  3. DRAM(Dynamic Random Access Memory):动态随机存取存储器,最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 (关机就会丢失数据)
  4. SRAM(Static Random-Access Memory,SRAM): 静态随机存取存储器,是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。SRAM(Static Random-Access Memory,SRAM): 静态随机存取存储器,是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。
  5. Flash(Flash Memory):全名叫Flash EEPROM Memory,又名闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是按区块擦写,这样闪存就比EEPROM的更新速度快,所以被称为Flash erase EEPROM,或简称为Flash Memory。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。另一方面,闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM。
  6. EEPROM (Electrically Erasable Programmable read only memory):带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
  7. EPROM:是一种断电后仍能保留数据的计算机储存芯片——即非易失性的(非挥发性)。它是一组浮栅晶体管,被一个提供比电子电路中常用电压更高电压的电子器件分别编程。一旦编程完成后,EPROM只能用强紫外线照射来擦除。通过封装顶部能看见硅片的透明窗口,很容易识别EPROM,这个窗口同时用来进行紫外线擦除。可以将EPROM的玻璃窗对准阳光直射一段时间就可以擦除。

内存的逻辑结构

  1. 数组:顺序的读取能力是最强的。内存只需要计算数组的首地址就可以,所以处理速度非常快,但是数组的删除速度非常的慢。
  2. 栈与队列:栈方便做一些记录的查询,或者适用于回溯的问题。栈这种数据结构必须满足先进后出的原则。队列这种数据结构必须满足先进先出的原则。栈与队列:栈方便做一些记录的查询,或者适用于回溯的问题。栈这种数据结构必须满足先进后出的原则。队列这种数据结构必须满足先进先出的原则。
  3. 链表:链表的每一个元素都必须有两部分,数据域和指针域。指针域指向下一个数据地址,方便数据的删除以及增加。
  4. 二叉树

磁盘

  1. 磁盘缓存:为了提高内存读取磁盘的效率。实际上就是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏。磁盘缓存是为了减少CPU透过I/O读取磁盘机的次数,提升磁盘I/O的效率,用一块内存来储存存取较频繁的磁盘内容;因为内存的存取是电子动作,而磁盘的存取是I/O动作,感觉上磁盘I/O变得较为快速。
  2. 虚拟内存:虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。虚拟内存和物理内存之间的交换算法有两种:(1)分页式;(2)分段式。
  3. 节约内存的编程方式:
    (1)函数公用:在windows之中有很多的dll复用函数
    (2)被调用方清理栈:一般在函数调用完成之后清理栈
    (3)数据压缩