最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jvm - Why CDS abbreviation has many different interpretations in HotSpot? - Stack Overflow

programmeradmin1浏览0评论

There is a feature in HotSpot called CDS, or Class Data Sharing. But in some articles (by Oracle team themselves, btw!). They mention CDS being an abbreviation of Class Data Storage and Cached Data Storage. So now we have three of them:

  1. Class Data Sharing
  2. Class Data Storage
  3. Cached Data Storage

So, my questions are:

  1. Am I correct, that they are basically the same thing?
  2. If they are not, can you provide some links pointing to what exactly each piece is?
  3. If they are indeed the same thing - why the hell there are 3 different names to reference the same thing?

There is a feature in HotSpot called CDS, or Class Data Sharing. But in some articles (by Oracle team themselves, btw!). They mention CDS being an abbreviation of Class Data Storage and Cached Data Storage. So now we have three of them:

  1. Class Data Sharing
  2. Class Data Storage
  3. Cached Data Storage

So, my questions are:

  1. Am I correct, that they are basically the same thing?
  2. If they are not, can you provide some links pointing to what exactly each piece is?
  3. If they are indeed the same thing - why the hell there are 3 different names to reference the same thing?
Share Improve this question asked Feb 10 at 10:15 mipo256mipo256 3,2241 gold badge15 silver badges37 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

From this sources:

  1. https://bugs.openjdk./browse/JDK-8315737
  2. https://openjdk./projects/leyden/slides/leyden-heidinga-devnexus-2024-03.pdf

They represent almost (!) the same feature in HotSpot. The key points are:

  1. Class Data Sharing == Class Data Storage. They are indeed the different names for the same feature. The first one is used more frequently.
  2. Cached Data Storage is an evolution of the Class Data Storage/Sharing. The idea is that it extends the functionality of Class Data Storage/Sharing, in the sense that now Cached Data Storage also stores shared information, not only related to Java classes, the direct quote from an issue:

As a matter of history, CDS has been built into the HotSpot VM [since JDK 5] in 2004. At first its expanded name was “Class Data Sharing”, which is reflected in options like -Xshare:…. Over the years it has expanded its capabilities beyond the storage of shareable class data, so the preferred alternative expansion for CDS is now “Cache Data Storage”. Either expansion refers to the same technology.

P.S: Here you can see the JEP 483, where Class Data Storage/Sharing evolved into Cached Data Storage.

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>