Re: [rvm-research] Introducing AllocationStrategy annotation
Ruben Peter Vervaeke <[email protected]> Mon, 9 Jul 2018 17:52:08 +0000
| Newsgroups | gmane.comp.java.jikes.rvm.devel |
|---|---|
| Message-ID | <DB7PR01MB423541B804EF3F682491C80FB7440@DB7PR01MB4235.eurprd01.prod.exchangelabs.com> |
Thank you for your answer. Isn't the @NonMoving annotation only used internal to the rvm? It's part of the 'magic' pragma I guess. I don't think this would apply to my case, or am I mistaking? -----Oorspronkelijk bericht----- Van: Robin Garner <[email protected]> Verzonden: zondag 8 juli 2018 15:21 Aan: [email protected] Onderwerp: Re: [rvm-research] Introducing AllocationStrategy annotation Take a look at the @NonMoving annotation. cheers On 08/07/18 00:34, Ruben Peter Vervaeke wrote: > > Hi, > > My name is Ruben Vervaeke and I'm a Master student in Applied Computer > Science at the VUB in Belgium. For my thesis project I need to > introduce a new annotation in the JDK (provisionally called > AllocationStrategy). I need to make such an annotation available to > the runtime rvm. The idea is that a developer can hint to the rvm that > certain heap allocations will be written a lot or will be written once > (or few times). Using this information the rvm should be able to > decide a specific allocation plan for the object(s) in question. This > is to support a hybrid memory model that can switch between > conventional DRAM memory hardware and NVM-based memory hardware. > > The focus for me lies on making such an annotation available to the > rvm, so it can decide what allocation plan to use. Another PhD student > has already modified the rvm for supporting the hybrid memory model > (using conventional DRAM or NVM memory). > > My question is: is it possible to make such an annotation available to > the rvm at allocation-time? If so, what would be the steps to take to > achieve this? > > An initial challenge that comes to mind: how to add an annotation to > the JDK library and use it in the RVM codebase? > > The declaration of this annotation in the JDK would look like this: > > @Retention(RetentionPolicy.RUNTIME) > > @Target({ElementType.CONSTRUCTOR, ElementType.FIELD, > ElementType.TYPE}) > > public @interface AllocationStrategy { > > MutationFrequency mutationFrequency(); > > } > > public enum MutationFrequency { > > NONE, > > LOW, > > MID, > > HIGH; > > } > > The semantics of the annotation: > > * CONSTRUCTOR: when declared on a specific constructor, > instantiations of the class using that constructor would be > allocated with NVM/DRAM in mind > * FIELD: when declared on a field, instantiations of the class type > that are immediately assigned to that field would be allocated > with NVM/DRAM in mind > * TYPE: when declared on a class, instantiations of that class would > be allocated with NVM/DRAM in mind > > > > ---------------------------------------------------------------------- > -------- Check out the vibrant tech community on one of the world's > most engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > _______________________________________________ > Jikesrvm-researchers mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Jikesrvm-researchers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot