❶ 二级缓存2×512kb和1024kb哪个好一点为什么请详细解释一下。
2X512KB就是说两个处理器都有512K的缓存, 理论上是缓存越大越好,但是更多的是看CPU的制作工艺,主频等各个参数。、
倍频,HT总线,处理器倍频,参考
http://ke..com/view/14045.html?tp=0_01
❷ 一级缓存和二级缓存哪个更重要
形象的比喻
CPU是老师
一级缓寸是教室
二级缓寸是礼堂
一般情况下 老师要找学生(数据)先到教室找,因为学生在这里的概率大
然后老师发现教室里没人 就跑到大礼堂(2级缓寸)去找 在这里找到学生的概率也不算小
如果再没有就只有拿着家庭住址(路径)找了
显然,一级缓寸是速度最快的,它越大就越好,其重要性怎是其他人可以比的
CPU是电脑的心脏,一台电脑所使用的CPU基本决定了这台电脑的性能和档次。CPU发展到了今天,频率已经到了2GHZ。在我们决定购买哪款CPU或者阅读有关CPU的文章时,经常会见到例如外频、倍频、缓存等参数和术语。下面我就把这些常用的和CPU有关的术语简单的给大家介绍一下。
CPU(Central Pocessing Unit)
中央处理器,是计算机的头脑,90%以上的数据信息都是由它来完成的。它的工作速度快慢直接影响到整部电脑的运行速度。CPU集成上万个晶体管,可分为控制单元(Control Unit;CU)、逻辑单元(Arithmetic Logic Unit;ALU)、存储单元(Memory Unit;MU)三大部分。以内部结构来分可分为:整数运算单元,浮点运算单元,MMX单元,L1 Cache单元和寄存器等。
主频
CPU内部的时钟频率,是CPU进行运算时的工作频率。一般来说,主频越高,一个时钟周期里完成的指令数也越多,CPU的运算速度也就越快。但由于内部结构不同,并非所有时钟频率相同的CPU性能一样。
外频
即系统总线,CPU与周边设备传输数据的频率,具体是指CPU到芯片组之间的总线速度。
倍频
原先并没有倍频概念,CPU的主频和系统总线的速度是一样的,但CPU的速度越来越快,倍频技术也就应允而生。它可使系统总线工作在相对较低的频率上,而CPU速度可以通过倍频来无限提升。那么CPU主频的计算方式变为:主频 = 外频 x 倍频。也就是倍频是指CPU和系统总线之间相差的倍数,当外频不变时,提高倍频,CPU主频也就越高。
缓存(Cache)
CPU进行处理的数据信息多是从内存中调取的,但CPU的运算速度要比内存快得多,为此在此传输过程中放置一存储器,存储CPU经常使用的数据和指令。这样可以提高数据传输速度。可分一级缓存和二级缓存。
一级缓存
即L1 Cache。集成在CPU内部中,用于CPU在处理数据过程中数据的暂时保存。由于缓存指令和数据与CPU同频工作,L1级高速缓存缓存的容量越大,存储信息越多,可减少CPU与内存之间的数据交换次数,提高CPU的运算效率。但因高速缓冲存储器均由静态RAM组成,结构较复杂,在有限的CPU芯片面积上,L1级高速缓存的容量不可能做得太大。
二级缓存
即L2 Cache。由于L1级高速缓存容量的限制,为了再次提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。工作主频比较灵活,可与CPU同频,也可不同。CPU在读取数据时,先在L1中寻找,再从L2寻找,然后是内存,在后是外存储器。所以L2对系统的影响也不容忽视。
❸ 关于Hibernate二级缓存的问题
<property
name="hibernate.cache.use_second_level_cache">true</property>
<property
name="hibernate.cache.provider_class">org.hibernate.cache.ehcacheprovider</property>
前一句是打开二级缓存,后一句是启用第三方缓存产品(可改变,上面eache是hibernate官方默认的第三方缓存产品)
缓存是否实用,要看你的需求,
如果你的系统,浏览的人数比较多,但是增删的比较少,缓存的功劳非常大
如果你的系统即时性非常强,那么缓存的命中率就比较低,同时更新数据时,hibernate需要额外提供资源维护缓存与数据的一致
❹ 电脑CPU所谓的,一级二级三级缓存分别在什么位置
CPU中缓存是为了加快CPU读取数据的速度,也是为了给内存一个缓冲期。因为CPU运算速度太快了,光靠内存读写完全跟不上,而CPU缓存的数据交换比内存快多了,大部分时候CPU可以直接从缓存读取数据,找不到的话再从内存读取,这样可以节省CPU读取内存数据时浪费的时间。
CPU缓存分为三类,一级缓存(L1)、二级缓存(L2)和三级缓存(L3)。CPU在实际数据读取中重要的却是一级缓存,因为一级缓存速度最快,二级缓存其次,三级缓存最慢,只是三级缓存的容量最大。
(4)二级缓存路径扩展阅读:
一级缓存虽然速度最快,但容量最小,单位都是KB,不同CPU之间一级缓存没有差距,所以现在不怎么提了,二级缓存容量也不大,基本都是个位数MB,除了一些服务器CPU会有10几MB之外,现在CPU也不怎么提二级缓存。CPU读取缓存时会先从一级缓存开始,然是二级缓存,而读取二级缓存有时候会出现数据未命中的情况,这时候就需要从三级缓存读取。
但是要注意的是三级缓存越大并不一定说这个CPU性能就越强,因为三级缓存的容量还依靠CPU架构和工艺等方面的影响,如果是与架构工艺搭配升级的三级缓存,容量越大才会性能越高。
❺ CPU,一级缓存的参数重要还是二级缓存
CPU是电脑的心脏,一台电脑所使用的CPU基本决定了这台电脑的性能和档次。CPU发展到了今天,频率已经到了2GHZ。在我们决定购买哪款CPU或者阅读有关CPU的文章时,经常会见到例如外频、倍频、缓存等参数和术语。下面我就把这些常用的和CPU有关的术语简单的给大家介绍一下。
CPU(Central Pocessing Unit)
中央处理器,是计算机的头脑,90%以上的数据信息都是由它来完成的。它的工作速度快慢直接影响到整部电脑的运行速度。CPU集成上万个晶体管,可分为控制单元(Control Unit;CU)、逻辑单元(Arithmetic Logic Unit;ALU)、存储单元(Memory Unit;MU)三大部分。以内部结构来分可分为:整数运算单元,浮点运算单元,MMX单元,L1 Cache单元和寄存器等。
主频
CPU内部的时钟频率,是CPU进行运算时的工作频率。一般来说,主频越高,一个时钟周期里完成的指令数也越多,CPU的运算速度也就越快。但由于内部结构不同,并非所有时钟频率相同的CPU性能一样。
外频
即系统总线,CPU与周边设备传输数据的频率,具体是指CPU到芯片组之间的总线速度。
倍频
原先并没有倍频概念,CPU的主频和系统总线的速度是一样的,但CPU的速度越来越快,倍频技术也就应允而生。它可使系统总线工作在相对较低的频率上,而CPU速度可以通过倍频来无限提升。那么CPU主频的计算方式变为:主频 = 外频 x 倍频。也就是倍频是指CPU和系统总线之间相差的倍数,当外频不变时,提高倍频,CPU主频也就越高。
缓存(Cache)
CPU进行处理的数据信息多是从内存中调取的,但CPU的运算速度要比内存快得多,为此在此传输过程中放置一存储器,存储CPU经常使用的数据和指令。这样可以提高数据传输速度。可分一级缓存和二级缓存。
一级缓存
即L1 Cache。集成在CPU内部中,用于CPU在处理数据过程中数据的暂时保存。由于缓存指令和数据与CPU同频工作,L1级高速缓存缓存的容量越大,存储信息越多,可减少CPU与内存之间的数据交换次数,提高CPU的运算效率。但因高速缓冲存储器均由静态RAM组成,结构较复杂,在有限的CPU芯片面积上,L1级高速缓存的容量不可能做得太大。
二级缓存
即L2 Cache。由于L1级高速缓存容量的限制,为了再次提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。工作主频比较灵活,可与CPU同频,也可不同。CPU在读取数据时,先在L1中寻找,再从L2寻找,然后是内存,在后是外存储器。所以L2对系统的影响也不容忽视。
❻ 高手请进
虚拟内存:比如我的内存128,,分给集成显卡8M,开XP用掉80,火狐用掉30,这时候我想开迅雷,但是迅雷需要30M内存,内存不够了!操作系统就把火狐的30M暂时储存到硬盘上,储存需要的硬盘空间就叫虚拟内存。
缓存一般来说是一级缓存和二级缓存,是CPU内集成的很少的储存空间。一级缓存对CPU性能几乎无影响。一级、二级缓存和CPU核心速度相等,内存读写速度远远慢于二级缓存。而计算机有个原理:CPU80%的时间在处理20%的数据,所以就把这很少但最常用的数据存放在二级缓存中,以提高性能。
AMD k10架构的那个处理器有三级缓存。
❼ 一二级缓存的位置分别是位于哪里的
一二级缓存都在CPU内
❽ hibernate二级缓存 和 spring整合的缓存(就是用哪个Cacheable注解的)有什么区别么
二级缓存配置(spring+hibernate)
说明:本人不建议使用查询缓存,因为查询缓存要求完全相同的查询sql语句才会起作用,所说的查询缓存是针对第二次查询时 sql语句与第一次sql语句完全相同 那么就可以从缓存中取数据而不去数据库中取数据了,在不启用查询缓存的情况下 每次的查询数据也会缓存到二级缓存的 只不过每次查询都会去查询数据库(不包括根据ID查询),启用查询缓存很麻烦 需要每次查询时 调用Query.setCacheable(true)方法才可以,如:List<OrgiData> orgiDatas = (List<OrgiData>) s.createQuery("from OrgiData").setCacheable(true).list();
因此建议将查询缓存设置为如下:
hibernate.cache.use_query_cache=false
还有就是最重要的一点:对于经常修改或重要的数据不宜进行缓存,因为多并发时会造成数据不同步的情况。
首先增加ehcache-1.4.1.jar和backport-util-concurrent-3.1.jar或oscache-2.1.jar
一、spring配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>com/handpay/core/merchant/bean/MerchGroupBuy.hbm.xml
</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=update
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=false
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider </value>
</property>
</bean>
<!---红色字体是二级缓存相关的设置->
二、hbm.xml文件示例
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.handpay.core.merchant.bean">
<class name="MerchGroupBuy" table="merch_group_buy">
<cache usage="read-write" region="com.handpay.core.merchant.bean.MerchGroupBuy"/>
<id name="id">
<generator class="native" />
</id>
<property name="code" />
<property name="createTime"/>
<property name="minNum"/>
<property name="status">
</property>
<property name="title"/>
<property name="typeCode"/>
<property name="updateTime"/>
</class>
</hibernate-mapping>
三、注解示例
@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
@Table(name = "alcor_t_countries", catalog = "alcorweb")
public class AlcorTCountries implements java.io.Serializable{。。。。}
四、配置文件参数详解
ehcache.xml是ehcache的配置文件,并且存放在应用的classpath中。下面是对该XML文件中的一些元素及其属性的相关说明:
<diskStore>元素:指定一个文件目录,当EHCache把数据写到硬盘上时,将把数据写到这个文件目录下。 下面的参数这样解释:
user.home – 用户主目录
user.dir – 用户当前工作目录
java.io.tmpdir – 默认临时文件路径
<defaultCache>元素:设定缓存的默认数据过期策略。
<cache>元素:设定具体的命名缓存的数据过期策略。
<cache>元素的属性
name:缓存名称。通常为缓存对象的类名(非严格标准)。
maxElementsInMemory:设置基于内存的缓存可存放对象的最大数目。
maxElementsOnDisk:设置基于硬盘的缓存可存放对象的最大数目。
eternal:如果为true,表示对象永远不会过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds属性,默认为false;
timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为单位。当对象自从最近一次被访问后,如果处于空闲状态的时间超过了timeToIdleSeconds属性值,这个对象就会过期。当对象过期,EHCache将把它从缓存中清空。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地处于空闲状态。
timeToLiveSeconds:设定对象允许存在于缓存中的最长时间,以秒为单位。当对象自从被存放到缓存中后,如果处于缓存中的时间超过了 timeToLiveSeconds属性值,这个对象就会过期。当对象过期,EHCache将把它从缓存中清除。只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以无限期地存在于缓存中。timeToLiveSeconds必须大于timeToIdleSeconds属性,才有意义。
overflowToDisk:如果为true,表示当基于内存的缓存中的对象数目达到了maxElementsInMemory界限后,会把益出的对象写到基于硬盘的缓存中。注意:如果缓存的对象要写入到硬盘中的话,则该对象必须实现了Serializable接口才行。
memoryStoreEvictionPolicy:缓存对象清除策略。有三种:
1 FIFO ,first in first out ,这个是大家最熟的,先进先出,不多讲了
2 LFU , Less Frequently Used ,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用的。如上面所讲,缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存。
2 LRU ,Least Recently Used ,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。
五 、查看 二级缓存数据
1、使用sessionFactory直接获取
Map cacheEntries = sessionFactory().getStatistics()
.getSecondLevelCacheStatistics("cacheRegionName")
.getEntries();
其中 cacheRegionName 既是 ehcache.xml配置中的<cache 标签的name属性值
2、让log4j打印缓存信息(生成环境下请注释掉,以免影响性能)
log4j.logger.org.hibernate.cache=debug
❾ 怎么才能在计算机中查到流处理器和二级缓存的位置
用鲁大师这样的软件一看就看见了