2015-06-08 2 views
-4

У меня вопрос относительно оптимизации производительности.Java Heap vs 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 кучи, то мы должны всегда сохранять данные в кэше если требуется для более быстрого доступа для сложных вычислений и результатов.?

Просьба направлять, который один работает быстрее и сценариях использования, как, когда, что можно использовать по другому ..

Благодарности

+0

Что вы подразумеваете под «в кеше»? Если вы имеете в виду кеш процессора, вы на самом деле не «храните вещи»; вместо этого он хранит копию нескольких разделов ОЗУ, и весь доступ к памяти должен пройти через нее. –

+0

Если вы используете кеш приложения, где, по вашему мнению, живет кеш - вне кучи? И мы не можем дать вам сценарии, а также предложения по использованию сценариев. Если у вас есть проблема, написала какой-то код, и у вас есть проблема, мы можем попробовать и помочь. – prabugp

ответ

2

Вы перепутать разные понятия.

Кавычка:

Разница между ОЗУ и кэш является его производительность, стоимость, а также близость к центральному процессору. Кэш быстрее, дороже и ближе к процессору. Из-за стоимости гораздо меньше кеша, чем RAM. Самый простой компьютер - это процессор и хранилище данных.

Речь идет об архитектуре компьютера и применяется ко всем компьютерам, независимо от того, какой язык программирования вы используете. Невозможно напрямую контролировать, какие данные находятся в кеше. Кэш CPU будет хранить данные, которые запрашиваются очень часто автоматически. Программисты могут улучшить свои программы, чтобы сделать его более «дружественным» к конкретной аппаратной архитектуре. Например, если у процессора имеется только небольшой кеш, код может быть оптимизирован для работы с меньшим набором данных.

Java Cache - это нечто другое. Это библиотека, которая кэширует объекты Java, например. для сохранения запросов к внешней службе. Java Cache, может хранить данные объекта в куче, вне кучи в отдельной памяти или диске. Внутри кучи имеет самый быстрый доступ, так как для любого хранилища вне кучи объекты должны быть преобразованы в потоки байтов (вызывается сериализация или сортировка)