Java堆与缓存

时间:2015-06-08 15:38:36

标签: java performance caching

我对性能优化有疑问。

从Cache或Java堆中检索哪个更快?

根据我得到的定义: -

https://www.google.co.in/search?client=ubuntu&channel=fs&q=cache+vs+heap&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=G7V1Ve-xDoeCoAP6goHACg#channel=fs&q=difference+between+cache+and+RAM

如果通过我的java代码将数据存储在缓存中比将其存储在java堆中更快,那么我们是否应该始终将数据存储在缓存中,以便更快地访问复杂的计算和结果。?

请指导哪一个更快,以及用户场景何时使用另一个...

由于

1 个答案:

答案 0 :(得分:2)

你混淆了不同的概念。

引用是:

  

RAM和缓存之间的区别在于其性能,成本和与CPU的接近程度。缓存更快,成本更高,并且最接近CPU。由于成本,缓存比RAM少得多。最基本的计算机是CPU和数据存储。

这与计算机体系结构有关,适用于所有计算机,无论您使用何种编程语言。无法直接控制缓存中的数据。 CPU缓存将保存经常自动请求的数据。程序员可以改进他们的程序,使其更友好"到特定的硬件架构。例如,如果CPU只有一个小缓存,则可以优化代码以处理较小的数据集。

Java Cache是​​不同的东西。这是一个缓存Java对象的库,例如将请求保存到外部服务。 Java Cache可以将对象数据存储在堆外,堆在单独的内存或磁盘中。堆内部访问速度最快,因为对于堆外的任何存储,对象需要转换为字节流(称为序列化或编组)