Re: [rvm-research] online turning on/off write barriers
Shoaib Akram <[email protected]> Wed, 9 Jan 2019 21:28:58 +0100
| Newsgroups | gmane.comp.java.jikes.rvm.devel |
|---|---|
| Message-ID | <[email protected]> |
--===============3080938032325370721== Content-Type: multipart/alternative; boundary="Apple-Mail=_CFFAD6B5-76F8-4691-B7A6-FE3A53A1F7F0" --Apple-Mail=_CFFAD6B5-76F8-4691-B7A6-FE3A53A1F7F0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Thanks Richard! This is very relevant. Too sad, they did not use Jikes = RVM ;) > On Jan 9, 2019, at 5:19 PM, Richard Jones <[email protected]> = wrote: >=20 >=20 >=20 > Eliot Moss wrote on 09/01/2019 15:51: >> On 1/9/2019 9:48 AM, Shoaib Akram wrote: >>=20 >>> As part of my research, I want to build a JVM prototype, which = enables >> executing certain phases of the program using write barriers (both = primitive >> and references), and other phases without write barriers. The write = barrier >> will do some accounting, for example, set a special bit the object >> header. Generally, you can build the JVM with write barriers = enabled or >> disabled. My idea is to use the benefit of the write barrier to = online >> monitor certain activities, whereas not pay the penalty of having = the >> barriers turned on during the entire program execution. Note that = dividing >> the barrier into a fast path (check a flag and leave the barrier), = and a >> slow path (check a flag and do the accounting) is not very helpful = since the >> cost of the extra method call(s) when barriers are enabled is >> prohibitive. The cost of accounting (setting bit in header) is a = fraction of >> the total cost of enabling the write barriers. >>=20 >>> One way to accomplish this is to recompile all methods while = informing the >> compiler(s) to insert or leave the write barrier code. Has anyone = tried >> doing such a thing in the past? Any thoughts on alternative ways or >> challenges involved are welcome! >>=20 >> Unless turning the barriers on/off is a very rare event, the = recompilation >> cost may well be an issue in itself. >>=20 >> Fast path/slow path is not an either/or kind of thing. You can move = more code >> into the fast path, for example. So if your accounting is simple, = you just >> inline it there. You still need your check as to whether barriers = are on/off. >> That can be a check of a memory location, or, if you can dedicate one = bit in a >> register somewhere, you can make the test faster (though more complex = to turn >> on/off). >>=20 >> I suppose another option is to retain *both* versions of methods, and = swap >> them in and out. You would need to do on-stack replacement of = currently >> running methods in that case -- something that has been done, but is = somewhat >> complex (unless you can just use it more or less as is). >=20 > Phil Pizlo, Erez Petrank and Bjarne Steensgaard did this, but for = Bartok not Jikes RVM. See >=20 > @inproceedings{pizl08a, > title =3D {Path Specialization: Reducing Phased Execution Overheads}, > author =3D {Filip Pizlo and Erez Petrank and Bjarne Steensgaard}, > crossref =3D {ISMM08}, > pages =3D {81--90}, > doi =3D {10.1145/1375634.1375647}, > abstract =3D {As garbage collected languages become widely used, the > quest for reducing collection overheads becomes essential. In this > paper, we propose a compiler optimization called path specialization > that shrinks the cost of memory barriers for a wide variety of > garbage collectors including concurrent, incremental, and real-time > collectors. Path specialization provides a non-trivial decrease in > write-barrier overheads and a drastic reduction of read-barrier > overheads. It is effective when used with collectors that go through > various phases each employing a different barrier behavior, and is > most effective for collectors that have an idle phase, in which no > barrier activity is required. We have implemented path specialization > in the Bartok compiler and runtime for C# and tested it with > state-of-the-art concurrent and real-time collectors, demonstrating > its efficacy.} > } >=20 >>=20 >> You might also check into the lterature about turning various = instrumentation >> on and off by recompiling methods dynamically, to sample only = sometimes. Do >> you need this accounting barrier turned on/off for all objects at = once? Or >> are you just trying to sample such that turning it on/off for = different >> methods at different time would be ok? Etc. >>=20 >> Btw, we usually find that we can be more helpful on this list if you = tell us >> more about what you're really trying to accomplish :-) ... >>=20 >> Regards - Eliot Moss >>=20 >>=20 >> _______________________________________________ >> Jikesrvm-researchers mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >=20 >=20 >=20 > _______________________________________________ > Jikesrvm-researchers mailing list > [email protected] = <mailto:[email protected]> > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers = <https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers> --Apple-Mail=_CFFAD6B5-76F8-4691-B7A6-FE3A53A1F7F0 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; = charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;" = class=3D"">Thanks Richard! This is very relevant. Too sad, they did not = use Jikes RVM ;)<br class=3D""><div><br class=3D""><blockquote = type=3D"cite" class=3D""><div class=3D"">On Jan 9, 2019, at 5:19 PM, = Richard Jones <<a href=3D"mailto:[email protected]" = class=3D"">[email protected]</a>> wrote:</div><br = class=3D"Apple-interchange-newline"><div class=3D""><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">Eliot Moss wrote on 09/01/2019 = 15:51:</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><blockquote type=3D"cite" style=3D"font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D"">On = 1/9/2019 9:48 AM, Shoaib Akram wrote:<br class=3D""><br = class=3D""><blockquote type=3D"cite" class=3D"">As part of my research, = I want to build a JVM prototype, which enables<br = class=3D""></blockquote> <span = class=3D"Apple-converted-space"> </span>executing certain phases of = the program using write barriers (both primitive<br class=3D""> <span= class=3D"Apple-converted-space"> </span>and references), and other = phases without write barriers. The write barrier<br class=3D""> <span= class=3D"Apple-converted-space"> </span>will do some accounting, = for example, set a special bit the object<br class=3D""> <span = class=3D"Apple-converted-space"> </span>header. Generally, you can = build the JVM with write barriers enabled or<br class=3D""> <span = class=3D"Apple-converted-space"> </span>disabled. My idea is to use = the benefit of the write barrier to online<br class=3D""> <span = class=3D"Apple-converted-space"> </span>monitor certain activities, = whereas not pay the penalty of having the<br class=3D""> <span = class=3D"Apple-converted-space"> </span>barriers turned on during = the entire program execution. Note that dividing<br class=3D""> <span= class=3D"Apple-converted-space"> </span>the barrier into a fast = path (check a flag and leave the barrier), and a<br class=3D""> <span= class=3D"Apple-converted-space"> </span>slow path (check a flag = and do the accounting) is not very helpful since the<br = class=3D""> <span class=3D"Apple-converted-space"> </span>cost = of the extra method call(s) when barriers are enabled is<br = class=3D""> <span = class=3D"Apple-converted-space"> </span>prohibitive. The cost of = accounting (setting bit in header) is a fraction of<br = class=3D""> <span class=3D"Apple-converted-space"> </span>the = total cost of enabling the write barriers.<br class=3D""><br = class=3D""><blockquote type=3D"cite" class=3D"">One way to accomplish = this is to recompile all methods while informing the<br = class=3D""></blockquote> <span = class=3D"Apple-converted-space"> </span>compiler(s) to insert or = leave the write barrier code. Has anyone tried<br class=3D""> <span = class=3D"Apple-converted-space"> </span>doing such a thing in the = past? Any thoughts on alternative ways or<br class=3D""> <span = class=3D"Apple-converted-space"> </span>challenges involved are = welcome!<br class=3D""><br class=3D"">Unless turning the barriers on/off = is a very rare event, the recompilation<br class=3D"">cost may well be = an issue in itself.<br class=3D""><br class=3D"">Fast path/slow path is = not an either/or kind of thing. You can move more code<br = class=3D"">into the fast path, for example. So if your accounting = is simple, you just<br class=3D"">inline it there. You still need = your check as to whether barriers are on/off.<br class=3D"">That can be = a check of a memory location, or, if you can dedicate one bit in a<br = class=3D"">register somewhere, you can make the test faster (though more = complex to turn<br class=3D"">on/off).<br class=3D""><br class=3D"">I = suppose another option is to retain *both* versions of methods, and = swap<br class=3D"">them in and out. You would need to do on-stack = replacement of currently<br class=3D"">running methods in that case -- = something that has been done, but is somewhat<br class=3D"">complex = (unless you can just use it more or less as is).<br = class=3D""></blockquote><br style=3D"caret-color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">Phil Pizlo, Erez Petrank and Bjarne Steensgaard did this, but = for Bartok not Jikes RVM. See</span><br style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><br style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">@inproceedings{pizl08a,</span><br style=3D"caret-color: = rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: = normal; font-variant-caps: normal; font-weight: normal; letter-spacing: = normal; text-align: start; text-indent: 0px; text-transform: none; = white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">title =3D {Path Specialization: Reducing Phased Execution = Overheads},</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">author =3D = {Filip Pizlo and Erez Petrank and Bjarne Steensgaard},</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">crossref =3D {ISMM08},</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">pages =3D {81--90},</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">doi =3D = {10.1145/1375634.1375647},</span><br style=3D"caret-color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">abstract =3D {As garbage collected languages become widely = used, the</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">quest for = reducing collection overheads becomes essential. In this</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">paper, we propose a compiler = optimization called path specialization</span><br style=3D"caret-color: = rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: = normal; font-variant-caps: normal; font-weight: normal; letter-spacing: = normal; text-align: start; text-indent: 0px; text-transform: none; = white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">that shrinks the cost of memory barriers for a wide variety = of</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; = font-size: 18px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">garbage = collectors including concurrent, incremental, and real-time</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">collectors. Path specialization = provides a non-trivial decrease in</span><br style=3D"caret-color: = rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: = normal; font-variant-caps: normal; font-weight: normal; letter-spacing: = normal; text-align: start; text-indent: 0px; text-transform: none; = white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">write-barrier overheads and a drastic reduction of = read-barrier</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">overheads. It = is effective when used with collectors that go through</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">various phases each employing a = different barrier behavior, and is</span><br style=3D"caret-color: = rgb(0, 0, 0); font-family: Helvetica; font-size: 18px; font-style: = normal; font-variant-caps: normal; font-weight: normal; letter-spacing: = normal; text-align: start; text-indent: 0px; text-transform: none; = white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">most effective for collectors that have an idle phase, in = which no</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">barrier = activity is required. We have implemented path specialization</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">in the Bartok compiler and = runtime for C# and tested it with</span><br style=3D"caret-color: rgb(0, = 0, 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">state-of-the-art concurrent and real-time collectors, = demonstrating</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">its = efficacy.}</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><span style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none; float: none; display: inline !important;" class=3D"">}</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" = class=3D""><blockquote type=3D"cite" style=3D"font-family: Helvetica; = font-size: 18px; font-style: normal; font-variant-caps: normal; = font-weight: normal; letter-spacing: normal; orphans: auto; text-align: = start; text-indent: 0px; text-transform: none; white-space: normal; = widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><br = class=3D"">You might also check into the lterature about turning various = instrumentation<br class=3D"">on and off by recompiling methods = dynamically, to sample only sometimes. Do<br class=3D"">you need = this accounting barrier turned on/off for all objects at once? Or<br = class=3D"">are you just trying to sample such that turning it on/off for = different<br class=3D"">methods at different time would be ok? = Etc.<br class=3D""><br class=3D"">Btw, we usually find that we can be = more helpful on this list if you tell us<br class=3D"">more about what = you're really trying to accomplish :-) ...<br class=3D""><br = class=3D"">Regards - Eliot Moss<br class=3D""><br class=3D""><br = class=3D"">_______________________________________________<br = class=3D"">Jikesrvm-researchers mailing list<br class=3D""><a = href=3D"mailto:[email protected]" = class=3D"">[email protected]</a><br = class=3D"">https://lists.sourceforge.net/lists/listinfo/jikesrvm-researche= rs<br class=3D""></blockquote><br style=3D"caret-color: rgb(0, 0, 0); = font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><br style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><br style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;" class=3D""><span style=3D"caret-color: rgb(0, 0, = 0); font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none; float: none; display: inline !important;" = class=3D"">_______________________________________________</span><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">Jikesrvm-researchers mailing = list</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: = Helvetica; font-size: 18px; font-style: normal; font-variant-caps: = normal; font-weight: normal; letter-spacing: normal; text-align: start; = text-indent: 0px; text-transform: none; white-space: normal; = word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: = none;" class=3D""><a = href=3D"mailto:[email protected]" = style=3D"font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" = class=3D"">[email protected]</a><br = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 18px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none;" class=3D""><a = href=3D"https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers"= style=3D"font-family: Helvetica; font-size: 18px; font-style: normal; = font-variant-caps: normal; font-weight: normal; letter-spacing: normal; = orphans: auto; text-align: start; text-indent: 0px; text-transform: = none; white-space: normal; widows: auto; word-spacing: 0px; = -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" = class=3D"">https://lists.sourceforge.net/lists/listinfo/jikesrvm-researche= rs</a></div></blockquote></div><br class=3D""></body></html>= --Apple-Mail=_CFFAD6B5-76F8-4691-B7A6-FE3A53A1F7F0-- --===============3080938032325370721== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --===============3080938032325370721== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Jikesrvm-researchers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers --===============3080938032325370721==--