|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
[rvm-research] JikesRVM vs MaxineHi all,
this could sound trivial, but I cannot find any comparison between JikesRVM and Sun's Maxine project (http://wikis.sun.com/display/MaxineVM/Home;jsessionid=6EB9EEC979A763F1D2DE63505437C6E2). Anyone can give me clues about differences between the machines? Thanks, Luca ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs MaxineHi Luca, JikesRVM and Maxine both address broadly similar goals: building a reliable, performance-oriented Java virtual machine in Java. They both operate in broadly similar ways (no interpreter, image compile ahead-of-time, JIT compile at run-time). Until recently performance has had less emphasis for Maxine than Jikes RVM, but I know that Ben Titzer at Sun has been integrating a Java-coded reimplementation of the "HotSpot client" compiler into Maxine, which will provide much better performance than the current Maxine baseline compiler. If Ben is listening perhaps he can comment on the similarities and differences. Although Jikes RVM does give excellent performance (comparable to commercial VMs on established benchmarks), there are pieces of the system (like the opt compiler) that are still in need of some loving care and feeding. As an alternative to the opt compiler Ben and I recently talked about what it might take to port his "Hotspot client" compiler, which has been designed to be VM-portable, into Jikes RVM. That would be an interesting and potentially useful project for someone to take on. I hope others may care to chime in regarding Maxine versus Jikes RVM. Antony Hosking | Associate Professor | Computer Science | Purdue University 305 N. University Street | West Lafayette | IN 47907 | USA Office +1 765 494 6001 | Mobile +1 765 427 5484 On 3 Nov 2009, at 10:04, Luca Ferrari wrote:
------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs MaxineHi Luca,
your e-mail could be classified as flame bait :-) I'll try to give some objective opinions and also include MRP [1] : Maturity: Jikes RVM is considerably more mature than Maxine, this means it has more compiler optimizations, garbage collectors and testing done on it. On the other hand Maxine doesn't struggle under some of the baggage Jikes RVM does, for example, it is only more recently Jikes RVM has made reasonable use of package structure. Performance: MRP is the fastest of the metacircular VMs, improving upon Jikes RVM as it does which comes in next. I believe Maxine's optimizing compiler is being rethought. Debuggability: Maxine includes a tool for debugging itself, this is a great improvement over Jikes RVM's raw assembler in GDB, or printf style debugging. MRP is currently like Jikes RVM in this respect but I'm working on debugger integration. Architectures supported: Jikes RVM is essentially a 32bit VM, unless you can find a 64bit PowerPC (and even then ymmv). MRP provides support for x86-64, but bugs remain in its optimizing compiler in this mode of operation. Maxine targets x86-64 and ARM. Of all the metacircular VMs, MRP is the only one to support running on Windows. Active development: To be objective I'd look at ohloh: MRP - http://www.ohloh.net/p/MRP/analyses/latest RVM - http://www.ohloh.net/p/11470/analyses/latest Maxine- http://www.ohloh.net/p/maxine/analyses/latest my belief is that development, at least in public, of Jikes RVM and Maxine has plateaued. MRP development continues :-) Regards, Ian [1] http://mrp.codehaus.org/ 2009/11/3 Luca Ferrari <fluca1978@...>: > Hi all, > this could sound trivial, but I cannot find any comparison between JikesRVM and > Sun's Maxine project > (http://wikis.sun.com/display/MaxineVM/Home;jsessionid=6EB9EEC979A763F1D2DE63505437C6E2). > Anyone can give me clues about differences between the machines? > > Thanks, > Luca > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs Maxine2009/11/3 Ian Rogers <ian.rogers@...>:
> Hi Luca, > > your e-mail could be classified as flame bait :-) I'll try to give > some objective opinions and also include MRP [1] : > > Maturity: > Jikes RVM is considerably more mature than Maxine, this means it has > more compiler optimizations, garbage collectors and testing done on > it. On the other hand Maxine doesn't struggle under some of the > baggage Jikes RVM does, for example, it is only more recently Jikes > RVM has made reasonable use of package structure. > > Performance: > MRP is the fastest of the metacircular VMs, improving upon Jikes RVM > as it does which comes in next. I believe Maxine's optimizing compiler > is being rethought. > > Debuggability: > Maxine includes a tool for debugging itself, this is a great > improvement over Jikes RVM's raw assembler in GDB, or printf style > debugging. MRP is currently like Jikes RVM in this respect but I'm > working on debugger integration. > > Architectures supported: > Jikes RVM is essentially a 32bit VM, unless you can find a 64bit > PowerPC (and even then ymmv). MRP provides support for x86-64, but > bugs remain in its optimizing compiler in this mode of operation. > Maxine targets x86-64 and ARM. Of all the metacircular VMs, MRP is the > only one to support running on Windows. > > Active development: > To be objective I'd look at ohloh: > MRP - http://www.ohloh.net/p/MRP/analyses/latest > RVM - http://www.ohloh.net/p/11470/analyses/latest > Maxine- http://www.ohloh.net/p/maxine/analyses/latest > my belief is that development, at least in public, of Jikes RVM and > Maxine has plateaued. MRP development continues :-) > > Regards, > Ian > > [1] http://mrp.codehaus.org/ > > 2009/11/3 Luca Ferrari <fluca1978@...>: >> Hi all, >> this could sound trivial, but I cannot find any comparison between JikesRVM and >> Sun's Maxine project >> (http://wikis.sun.com/display/MaxineVM/Home;jsessionid=6EB9EEC979A763F1D2DE63505437C6E2). >> Anyone can give me clues about differences between the machines? >> >> Thanks, >> Luca >> >> ------------------------------------------------------------------------------ >> Come build with us! The BlackBerry(R) Developer Conference in SF, CA >> is the only developer event you need to attend this year. Jumpstart your >> developing skills, take BlackBerry mobile applications to market and stay >> ahead of the curve. Join us from November 9 - 12, 2009. Register now! >> http://p.sf.net/sfu/devconference >> _______________________________________________ >> Jikesrvm-researchers mailing list >> Jikesrvm-researchers@... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >> > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > The OHLOH comparison is a little unfair, given that doesn't seem to be the Maxine code, but presumably just its public web pages. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs Maxine
Sure. As mentioned, both are compile-only Java VMs written in Java, though we have been considering building an interpreter for Maxine to avoid compiling a lot of small startup methods. Maxine is a little more IDE-friendly and relies less on source code generation and preprocessing than Jikes. It also has a custom debugger tool called the "Maxine Inspector" which allows developers to look into the guts of a running VM and debug it--a very big productivity win in our opinion. Maxine is intended to be very modular and there are several big components that can be mixed and matched, including the reference representation, the GC implementation, monitor implementation, optimizing compiler, JIT compiler, etc. Maxine uses the standard JDK 1.6 from Sun (the same that is used by HotSpot) without modification. It short-circuits some of the native methods in the JDK with its own implementation. Maxine's garbage collectors are not as mature as those in Jikes RVM. It includes a stop-the-world semi-space collector as the default. It has an incomplete implementation of the Beltway framework including some generational collectors, but these are not fully integrated. Porting MMTk to Maxine might be an option, but we haven't had the resources to explore this. Maxine has had native threads from the beginning (Jikes switched to them in 3.0) and a state-of-the-art per-thread safepoint mechanism that supports stopping individual threads selectively for GC or biased lock revocation. Unfortunately Maxine's performance is hampered by a poor optimizing compiler. Maxine lags HotSpot server by a factor of 3-6 on the DaCapo benchmarks on x86-64 Solaris, our main platform. The ratio is better on x86-64 Darwin because HotSpot is much slower there (blame Apple; they maintain that port and we are not even sure what modifications they have made to HotSpot).
Yes, in building C1X from the client compiler (aka C1), we have tried to make this runtime separation as clean as possible, both as an experiment in stressing Maxine's modularity, but also with an eye to potentially back-porting it to HotSpot or to another VM. I think it makes a lot of sense to try putting C1X into Jikes RVM. This represents a golden opportunity to VM researchers to both explore optimizations in the same compiler across VMs as well as test the sensitivity of the VM to the compiler. It would be really great if some Jikes RVM researchers were also interested in this idea. We are rushing to finish up some loose ends in C1X but the source code is available as part of the Maxine project. We are planning on doing some refactoring and more documentation and I think by January or so, it will be in good shape for this experiment. -B
------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs MaxineOn 3 Nov 2009, at 13:57, Ben L. Titzer wrote:
> Maxine has had native threads from the beginning (Jikes switched to > them in 3.0) and a state-of-the-art per-thread safepoint mechanism > that supports stopping individual threads selectively for GC or > biased lock revocation. Interestingly, Jikes native threads also now have a very similar mechanism, independently devised. ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs Maxine2009/11/3 Ben L. Titzer <Ben.Titzer@...>:
> Hi Luca, snip... > Maxine uses the standard JDK 1.6 from Sun (the same that is used by HotSpot) > without modification. It short-circuits some of the native methods in the > JDK with its own implementation. Presumably it also works with OpenJDK6? > > Yes, in building C1X from the client compiler (aka C1), we have tried to > make this runtime separation as clean as possible, both as an experiment in > stressing Maxine's modularity, but also with an eye to potentially > back-porting it to HotSpot or to another VM. I think it makes a lot of sense > to try putting C1X into Jikes RVM. This represents a golden opportunity to > VM researchers to both explore optimizations in the same compiler across VMs > as well as test the sensitivity of the VM to the compiler. It would be > really great if some Jikes RVM researchers were also interested in this > idea. Backporting it to HotSpot sounds interesting -- perhaps it could be made to work with the zero assembler port (http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html) and thus gives us a platform independent HotSpot port with JIT? > We are rushing to finish up some loose ends in C1X but the source code is > available as part of the Maxine project. We are planning on doing some > refactoring and more documentation and I think by January or so, it will be > in good shape for this experiment. > Thanks for cc'ing me Tony, I hope that answers some questions. We will > consider adding a FAQ section regarding the Jikes vs Maxine topic on our > Wiki. > -B > > On 3 Nov 2009, at 10:04, Luca Ferrari wrote: > > Hi all, > this could sound trivial, but I cannot find any comparison between JikesRVM > and > Sun's Maxine project > (http://wikis.sun.com/display/MaxineVM/Home;jsessionid=6EB9EEC979A763F1D2DE63505437C6E2). > Anyone can give me clues about differences between the machines? > > Thanks, > Luca > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. Â http://p.sf.net/sfu/bobj-july > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs MaxineOn Nov 5, 2009, at 6:43 AM, Andrew John Hughes wrote: > 2009/11/3 Ben L. Titzer <Ben.Titzer@...>: >> Hi Luca, > > snip... > >> Maxine uses the standard JDK 1.6 from Sun (the same that is used by >> HotSpot) >> without modification. It short-circuits some of the native methods >> in the >> JDK with its own implementation. > > Presumably it also works with OpenJDK6? Yes. One of the machines in our repository gate is running Ubuntu 9.04 with OpenJDK6 and so the port is tested on each commit. >> Yes, in building C1X from the client compiler (aka C1), we have >> tried to >> make this runtime separation as clean as possible, both as an >> experiment in >> stressing Maxine's modularity, but also with an eye to potentially >> back-porting it to HotSpot or to another VM. I think it makes a lot >> of sense >> to try putting C1X into Jikes RVM. This represents a golden >> opportunity to >> VM researchers to both explore optimizations in the same compiler >> across VMs >> as well as test the sensitivity of the VM to the compiler. It would >> be >> really great if some Jikes RVM researchers were also interested in >> this >> idea. > > Backporting it to HotSpot sounds interesting -- perhaps it could be > made to work with the zero assembler port > (http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html > ) > and thus gives us a platform independent HotSpot port with JIT? I was not aware of the Zero work but having just read the page you mention, I don't see why it wouldn't work. At the moment, we're focusing on integrating C1X into Maxine (while maintaining the clean VM/compiler interface) and hope to be done by Jan. By then, we'd be very interested in trying to integrate it with HotSpot which is when it may become interesting for the Zero project. -Doug ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs MaxineDoes anyone have sense of what effort it would take to port Maxine's
inspector to Jikes RVM? Is Inspector modular enough to be used with Jikes RVM (if we are to make it understand Jikes RVM's organization of code and data)? Also, are there licensing issues involved? Suriya On Thu, Nov 05, 2009 at 08:46:03AM -0800, Doug Simon wrote: > Date: Thu, 05 Nov 2009 08:46:03 -0800 > From: Doug Simon <Doug.Simon@...> > To: Andrew John Hughes <gnu_andrew@...> > Cc: "General discussion of Jikes RVM design, implementation, issues, > and plans" <jikesrvm-researchers@...>, > Tony Hosking <hosking@...> > Subject: Re: [rvm-research] JikesRVM vs Maxine > Reply-To: "General discussion of Jikes RVM design, implementation, issues, > and plans" <jikesrvm-researchers@...> > > > On Nov 5, 2009, at 6:43 AM, Andrew John Hughes wrote: > > > 2009/11/3 Ben L. Titzer <Ben.Titzer@...>: > >> Hi Luca, > > > > snip... > > > >> Maxine uses the standard JDK 1.6 from Sun (the same that is used by > >> HotSpot) > >> without modification. It short-circuits some of the native methods > >> in the > >> JDK with its own implementation. > > > > Presumably it also works with OpenJDK6? > > Yes. One of the machines in our repository gate is running Ubuntu 9.04 > with OpenJDK6 and so the port is tested on each commit. > > >> Yes, in building C1X from the client compiler (aka C1), we have > >> tried to > >> make this runtime separation as clean as possible, both as an > >> experiment in > >> stressing Maxine's modularity, but also with an eye to potentially > >> back-porting it to HotSpot or to another VM. I think it makes a lot > >> of sense > >> to try putting C1X into Jikes RVM. This represents a golden > >> opportunity to > >> VM researchers to both explore optimizations in the same compiler > >> across VMs > >> as well as test the sensitivity of the VM to the compiler. It would > >> be > >> really great if some Jikes RVM researchers were also interested in > >> this > >> idea. > > > > Backporting it to HotSpot sounds interesting -- perhaps it could be > > made to work with the zero assembler port > > (http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html > > ) > > and thus gives us a platform independent HotSpot port with JIT? > > I was not aware of the Zero work but having just read the page you > mention, I don't see why it wouldn't work. At the moment, we're > focusing on integrating C1X into Maxine (while maintaining the clean > VM/compiler interface) and hope to be done by Jan. By then, we'd be > very interested in trying to integrate it with HotSpot which is when > it may become interesting for the Zero project. > > -Doug > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] JikesRVM vs MaxineHi Suriya,
On Nov 5, 2009, at 2:45 PM, Suriya Subramanian wrote: > Does anyone have sense of what effort it would take to port Maxine's > inspector to Jikes RVM? Is Inspector modular enough to be used with > Jikes > RVM (if we are to make it understand Jikes RVM's organization of > code and > data)? While the Inspector is somewhat modular in its design, it is tightly coupled to the internal data structures of Maxine. This is not accidental - it actually makes the Inspector a lot easier to implement and keep in sync with VM changes. That said, there's no technical reason that it couldn't molded to bind to Jikes types instead. I'll let Michael (the core Inspector engineer) add more if he likes. > Also, are there licensing issues involved? While I'm not a lawyer, I believe that the GPL2 license Maxine is under should not be a roadblock to others using Maxine code. -Doug > On Thu, Nov 05, 2009 at 08:46:03AM -0800, Doug Simon wrote: >> Date: Thu, 05 Nov 2009 08:46:03 -0800 >> From: Doug Simon <Doug.Simon@...> >> To: Andrew John Hughes <gnu_andrew@...> >> Cc: "General discussion of Jikes RVM design, implementation, issues, >> and plans" <jikesrvm-researchers@...>, >> Tony Hosking <hosking@...> >> Subject: Re: [rvm-research] JikesRVM vs Maxine >> Reply-To: "General discussion of Jikes RVM design, implementation, >> issues, >> and plans" <jikesrvm-researchers@...> >> >> >> On Nov 5, 2009, at 6:43 AM, Andrew John Hughes wrote: >> >>> 2009/11/3 Ben L. Titzer <Ben.Titzer@...>: >>>> Hi Luca, >>> >>> snip... >>> >>>> Maxine uses the standard JDK 1.6 from Sun (the same that is used by >>>> HotSpot) >>>> without modification. It short-circuits some of the native methods >>>> in the >>>> JDK with its own implementation. >>> >>> Presumably it also works with OpenJDK6? >> >> Yes. One of the machines in our repository gate is running Ubuntu >> 9.04 >> with OpenJDK6 and so the port is tested on each commit. >> >>>> Yes, in building C1X from the client compiler (aka C1), we have >>>> tried to >>>> make this runtime separation as clean as possible, both as an >>>> experiment in >>>> stressing Maxine's modularity, but also with an eye to potentially >>>> back-porting it to HotSpot or to another VM. I think it makes a lot >>>> of sense >>>> to try putting C1X into Jikes RVM. This represents a golden >>>> opportunity to >>>> VM researchers to both explore optimizations in the same compiler >>>> across VMs >>>> as well as test the sensitivity of the VM to the compiler. It would >>>> be >>>> really great if some Jikes RVM researchers were also interested in >>>> this >>>> idea. >>> >>> Backporting it to HotSpot sounds interesting -- perhaps it could be >>> made to work with the zero assembler port >>> (http://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html >>> ) >>> and thus gives us a platform independent HotSpot port with JIT? >> >> I was not aware of the Zero work but having just read the page you >> mention, I don't see why it wouldn't work. At the moment, we're >> focusing on integrating C1X into Maxine (while maintaining the clean >> VM/compiler interface) and hope to be done by Jan. By then, we'd be >> very interested in trying to integrate it with HotSpot which is when >> it may become interesting for the Zero project. >> >> -Doug >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports >> 2008 30-Day >> trial. Simplify your report design, integration and deployment - >> and focus on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Jikesrvm-researchers mailing list >> Jikesrvm-researchers@... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
[rvm-research] How VMRequest.create() ask for memory resources?Dear all,
I am a little bit confused here, as described in the source: / public static VMRequest create() { return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), Extent.zero(), 0f, false); }/ It seems request nothing. By the way, can anyone tell me the difference between dis-contiguous and contiguous space? Thanks a lot. -- Regards, Liangliang ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] How VMRequest.create() ask for memory resources?lltong wrote:
> Dear all, > > I am a little bit confused here, as described in the source: > > / public static VMRequest create() { > return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), > Extent.zero(), 0f, false); > }/ > > It seems request nothing. > By the way, can anyone tell me the difference between dis-contiguous and > contiguous space? > Thanks a lot. > A VMRequest is a 'parameter object' - the only way a VMRequest is used is to pass it to the constructor of a Space, in order to specify how the Space should use virtual memory. You should look in the code for Space to see how this information is used. A contiguous space is a single uninterrupted region of virtual memory, eg [60000000-6FFFFFFF]. A discontiguous space consists of (potentially) multiple regions, interleaved with other spaces. Arguably, the multiple 'create()' methods of VMRequest should have more descriptive names. hth, Robin ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] How VMRequest.create() ask for memory resources?Dear Robin,
Thanks. I took a look at the "Space", seems that it will affect this code segment: if (vmRequest.type == VMRequest.REQUEST_DISCONTIGUOUS) { this.contiguous = false; this.descriptor = SpaceDescriptor.createDescriptor(); this.start = Address.zero(); this.extent = Extent.zero(); this.lastDiscontiguousRegion = Address.zero(); VM.memory.setHeapRange(index, HEAP_START, HEAP_END); return; } If VMRequest is used without parameters, its type will be equal to REQUEST_DISCONTIGUOUS, so that code segment is executed. But it seems to set the entire heap range for even one semi-space. Then where can another semi-space locate? Thanks in advance. Robin Garner wrote: > lltong wrote: > >> Dear all, >> >> I am a little bit confused here, as described in the source: >> >> / public static VMRequest create() { >> return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), >> Extent.zero(), 0f, false); >> }/ >> >> It seems request nothing. >> By the way, can anyone tell me the difference between dis-contiguous and >> contiguous space? >> Thanks a lot. >> >> > > A VMRequest is a 'parameter object' - the only way a VMRequest is used > is to pass it to the constructor of a Space, in order to specify how the > Space should use virtual memory. You should look in the code for Space > to see how this information is used. > > A contiguous space is a single uninterrupted region of virtual memory, > eg [60000000-6FFFFFFF]. A discontiguous space consists of (potentially) > multiple regions, interleaved with other spaces. > > Arguably, the multiple 'create()' methods of VMRequest should have more > descriptive names. > > hth, > Robin > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > -- Regards, Liangliang ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] How VMRequest.create() ask for memory resources?Discontiguous spaces allow multiple VM spaces to occupy the same virtual
memory region. Discontiguous spaces are allocated in 4MB 'chunks' (Space.BYTES_IN_CHUNK) and all discontiguous spaces are allocated from the same address range (as you have identified). When a discontiguous space expands, it just grabs the next available chunk of space within the discontiguous range. In practice, the two semi-spaces will both occupy a set of chunks within the discontiguous range, interleaved. So while conceptually we may draw the semispaces as |<--- 0 --->|<--- 1 --->| in actual fact, they may be more like |00011000101001100111110| all that matters is that a) The spaces don't overlap, and b) we can identify which space an object lives in, which is done in the org.mmtk.utility.heap.Map class. In fact, the semi-space collector allocates pages in a pattern somethink like this (each character represents a chunk, and the heap size is 40MB, so the heap is 10 chunks): 1. Allocate into S0 |00000 | 2. Collect into S1 |0000011 | 3. Release S0 | 11 | 4. Allocate into S1 |111 11 | 5. Collect into S0 |11100110 | 6. Release S1 | 00 0 | and so on. It's actually more complex than that, because the discontiguous region is also shared with the large object space, the small and large code spaces etc. regards, Robin lltong wrote: > Dear Robin, > > Thanks. > I took a look at the "Space", seems that it will affect this code segment: > > if (vmRequest.type == VMRequest.REQUEST_DISCONTIGUOUS) { > this.contiguous = false; > this.descriptor = SpaceDescriptor.createDescriptor(); > this.start = Address.zero(); > this.extent = Extent.zero(); > this.lastDiscontiguousRegion = Address.zero(); > VM.memory.setHeapRange(index, HEAP_START, HEAP_END); > return; > } > > If VMRequest is used without parameters, its type will be equal to > REQUEST_DISCONTIGUOUS, so that code segment is executed. But it seems to > set the entire heap range for even one semi-space. Then where can > another semi-space locate? > > Thanks in advance. > > Robin Garner wrote: >> lltong wrote: >> >>> Dear all, >>> >>> I am a little bit confused here, as described in the source: >>> >>> / public static VMRequest create() { >>> return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), >>> Extent.zero(), 0f, false); >>> }/ >>> >>> It seems request nothing. >>> By the way, can anyone tell me the difference between dis-contiguous and >>> contiguous space? >>> Thanks a lot. >>> >>> >> A VMRequest is a 'parameter object' - the only way a VMRequest is used >> is to pass it to the constructor of a Space, in order to specify how the >> Space should use virtual memory. You should look in the code for Space >> to see how this information is used. >> >> A contiguous space is a single uninterrupted region of virtual memory, >> eg [60000000-6FFFFFFF]. A discontiguous space consists of (potentially) >> multiple regions, interleaved with other spaces. >> >> Arguably, the multiple 'create()' methods of VMRequest should have more >> descriptive names. >> >> hth, >> Robin >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >> trial. Simplify your report design, integration and deployment - and focus on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Jikesrvm-researchers mailing list >> Jikesrvm-researchers@... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >> > > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] How VMRequest.create() ask for memory resources?Dear Robin,
I see, thanks so much. So that means, the semispace will grow dynamically while the allocation requests are satisfied, and if its limit(Heap-another semispace-los-sanity-etc) is exceeded, a collection will be triggered. Am I correct? Also, does region mean a continuous memory space that has a specific length? What is the typical length of this region? Thanks. Liangliang Robin Garner wrote: > Discontiguous spaces allow multiple VM spaces to occupy the same virtual > memory region. Discontiguous spaces are allocated in 4MB 'chunks' > (Space.BYTES_IN_CHUNK) and all discontiguous spaces are allocated from > the same address range (as you have identified). > > When a discontiguous space expands, it just grabs the next available > chunk of space within the discontiguous range. In practice, the two > semi-spaces will both occupy a set of chunks within the discontiguous > range, interleaved. > > So while conceptually we may draw the semispaces as > > |<--- 0 --->|<--- 1 --->| > > in actual fact, they may be more like > > |00011000101001100111110| > > all that matters is that > a) The spaces don't overlap, and > b) we can identify which space an object lives in, which is done in the > org.mmtk.utility.heap.Map class. > > > In fact, the semi-space collector allocates pages in a pattern somethink > like this (each character represents a chunk, and the heap size is 40MB, > so the heap is 10 chunks): > > 1. Allocate into S0 > |00000 | > > 2. Collect into S1 > |0000011 | > > 3. Release S0 > | 11 | > > 4. Allocate into S1 > |111 11 | > > 5. Collect into S0 > |11100110 | > > 6. Release S1 > | 00 0 | > > and so on. > > It's actually more complex than that, because the discontiguous region > is also shared with the large object space, the small and large code > spaces etc. > > regards, > Robin > > lltong wrote: > >> Dear Robin, >> >> Thanks. >> I took a look at the "Space", seems that it will affect this code segment: >> >> if (vmRequest.type == VMRequest.REQUEST_DISCONTIGUOUS) { >> this.contiguous = false; >> this.descriptor = SpaceDescriptor.createDescriptor(); >> this.start = Address.zero(); >> this.extent = Extent.zero(); >> this.lastDiscontiguousRegion = Address.zero(); >> VM.memory.setHeapRange(index, HEAP_START, HEAP_END); >> return; >> } >> >> If VMRequest is used without parameters, its type will be equal to >> REQUEST_DISCONTIGUOUS, so that code segment is executed. But it seems to >> set the entire heap range for even one semi-space. Then where can >> another semi-space locate? >> >> Thanks in advance. >> >> Robin Garner wrote: >> >>> lltong wrote: >>> >>> >>>> Dear all, >>>> >>>> I am a little bit confused here, as described in the source: >>>> >>>> / public static VMRequest create() { >>>> return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), >>>> Extent.zero(), 0f, false); >>>> }/ >>>> >>>> It seems request nothing. >>>> By the way, can anyone tell me the difference between dis-contiguous and >>>> contiguous space? >>>> Thanks a lot. >>>> >>>> >>>> >>> A VMRequest is a 'parameter object' - the only way a VMRequest is used >>> is to pass it to the constructor of a Space, in order to specify how the >>> Space should use virtual memory. You should look in the code for Space >>> to see how this information is used. >>> >>> A contiguous space is a single uninterrupted region of virtual memory, >>> eg [60000000-6FFFFFFF]. A discontiguous space consists of (potentially) >>> multiple regions, interleaved with other spaces. >>> >>> Arguably, the multiple 'create()' methods of VMRequest should have more >>> descriptive names. >>> >>> hth, >>> Robin >>> >>> ------------------------------------------------------------------------------ >>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >>> trial. Simplify your report design, integration and deployment - and focus on >>> what you do best, core application coding. Discover what's new with >>> Crystal Reports now. http://p.sf.net/sfu/bobj-july >>> _______________________________________________ >>> Jikesrvm-researchers mailing list >>> Jikesrvm-researchers@... >>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>> >>> >> > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > -- Regards, Liangliang ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] How VMRequest.create() ask for memory resources?lltong wrote:
> Dear Robin, > > I see, thanks so much. > So that means, the semispace will grow dynamically while the allocation > requests are satisfied, and if its limit(Heap-another > semispace-los-sanity-etc) is exceeded, a collection will be triggered. > Am I correct? Yes and no. All Spaces in MMTk grow as required, consuming virtual address space as defined in the VMRequest passed to their constructor. Triggering collections is a function of a Plan, specifically the poll() method of a plan. There are several possible reasons that a collection may be triggered. > Also, does region mean a continuous memory space that has a specific > length? What is the typical length of this region? As I said below, discontiguous spaces grow their virtual memory allocation in 4MB chunks. contiguous spaces don't need to do that. I use the term 'region' loosely, with a context-specific meaning, as opposed to 'space', 'chunk' or 'page', all of which have specific meanings in MMTk. cheers > Thanks. > > Liangliang > > Robin Garner wrote: >> Discontiguous spaces allow multiple VM spaces to occupy the same virtual >> memory region. Discontiguous spaces are allocated in 4MB 'chunks' >> (Space.BYTES_IN_CHUNK) and all discontiguous spaces are allocated from >> the same address range (as you have identified). >> >> When a discontiguous space expands, it just grabs the next available >> chunk of space within the discontiguous range. In practice, the two >> semi-spaces will both occupy a set of chunks within the discontiguous >> range, interleaved. >> >> So while conceptually we may draw the semispaces as >> >> |<--- 0 --->|<--- 1 --->| >> >> in actual fact, they may be more like >> >> |00011000101001100111110| >> >> all that matters is that >> a) The spaces don't overlap, and >> b) we can identify which space an object lives in, which is done in the >> org.mmtk.utility.heap.Map class. >> >> >> In fact, the semi-space collector allocates pages in a pattern somethink >> like this (each character represents a chunk, and the heap size is 40MB, >> so the heap is 10 chunks): >> >> 1. Allocate into S0 >> |00000 | >> >> 2. Collect into S1 >> |0000011 | >> >> 3. Release S0 >> | 11 | >> >> 4. Allocate into S1 >> |111 11 | >> >> 5. Collect into S0 >> |11100110 | >> >> 6. Release S1 >> | 00 0 | >> >> and so on. >> >> It's actually more complex than that, because the discontiguous region >> is also shared with the large object space, the small and large code >> spaces etc. >> >> regards, >> Robin >> >> lltong wrote: >> >>> Dear Robin, >>> >>> Thanks. >>> I took a look at the "Space", seems that it will affect this code segment: >>> >>> if (vmRequest.type == VMRequest.REQUEST_DISCONTIGUOUS) { >>> this.contiguous = false; >>> this.descriptor = SpaceDescriptor.createDescriptor(); >>> this.start = Address.zero(); >>> this.extent = Extent.zero(); >>> this.lastDiscontiguousRegion = Address.zero(); >>> VM.memory.setHeapRange(index, HEAP_START, HEAP_END); >>> return; >>> } >>> >>> If VMRequest is used without parameters, its type will be equal to >>> REQUEST_DISCONTIGUOUS, so that code segment is executed. But it seems to >>> set the entire heap range for even one semi-space. Then where can >>> another semi-space locate? >>> >>> Thanks in advance. >>> >>> Robin Garner wrote: >>> >>>> lltong wrote: >>>> >>>> >>>>> Dear all, >>>>> >>>>> I am a little bit confused here, as described in the source: >>>>> >>>>> / public static VMRequest create() { >>>>> return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), >>>>> Extent.zero(), 0f, false); >>>>> }/ >>>>> >>>>> It seems request nothing. >>>>> By the way, can anyone tell me the difference between dis-contiguous and >>>>> contiguous space? >>>>> Thanks a lot. >>>>> >>>>> >>>>> >>>> A VMRequest is a 'parameter object' - the only way a VMRequest is used >>>> is to pass it to the constructor of a Space, in order to specify how the >>>> Space should use virtual memory. You should look in the code for Space >>>> to see how this information is used. >>>> >>>> A contiguous space is a single uninterrupted region of virtual memory, >>>> eg [60000000-6FFFFFFF]. A discontiguous space consists of (potentially) >>>> multiple regions, interleaved with other spaces. >>>> >>>> Arguably, the multiple 'create()' methods of VMRequest should have more >>>> descriptive names. >>>> >>>> hth, >>>> Robin >>>> >>>> ------------------------------------------------------------------------------ >>>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >>>> trial. Simplify your report design, integration and deployment - and focus on >>>> what you do best, core application coding. Discover what's new with >>>> Crystal Reports now. http://p.sf.net/sfu/bobj-july >>>> _______________________________________________ >>>> Jikesrvm-researchers mailing list >>>> Jikesrvm-researchers@... >>>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>>> >>>> >>> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >> trial. Simplify your report design, integration and deployment - and focus on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Jikesrvm-researchers mailing list >> Jikesrvm-researchers@... >> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >> > > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] How VMRequest.create() ask for memory resources?Dear Robin,
Thanks so much for your detailed explains :) Liangliang Robin Garner wrote: > lltong wrote: > >> Dear Robin, >> >> I see, thanks so much. >> So that means, the semispace will grow dynamically while the allocation >> requests are satisfied, and if its limit(Heap-another >> semispace-los-sanity-etc) is exceeded, a collection will be triggered. >> Am I correct? >> > > Yes and no. > > All Spaces in MMTk grow as required, consuming virtual address space as > defined in the VMRequest passed to their constructor. > > Triggering collections is a function of a Plan, specifically the poll() > method of a plan. There are several possible reasons that a collection > may be triggered. > > >> Also, does region mean a continuous memory space that has a specific >> length? What is the typical length of this region? >> > > As I said below, discontiguous spaces grow their virtual memory > allocation in 4MB chunks. contiguous spaces don't need to do that. I > use the term 'region' loosely, with a context-specific meaning, as > opposed to 'space', 'chunk' or 'page', all of which have specific > meanings in MMTk. > > cheers > > >> Thanks. >> >> Liangliang >> > > > > >> Robin Garner wrote: >> >>> Discontiguous spaces allow multiple VM spaces to occupy the same virtual >>> memory region. Discontiguous spaces are allocated in 4MB 'chunks' >>> (Space.BYTES_IN_CHUNK) and all discontiguous spaces are allocated from >>> the same address range (as you have identified). >>> >>> When a discontiguous space expands, it just grabs the next available >>> chunk of space within the discontiguous range. In practice, the two >>> semi-spaces will both occupy a set of chunks within the discontiguous >>> range, interleaved. >>> >>> So while conceptually we may draw the semispaces as >>> >>> |<--- 0 --->|<--- 1 --->| >>> >>> in actual fact, they may be more like >>> >>> |00011000101001100111110| >>> >>> all that matters is that >>> a) The spaces don't overlap, and >>> b) we can identify which space an object lives in, which is done in the >>> org.mmtk.utility.heap.Map class. >>> >>> >>> In fact, the semi-space collector allocates pages in a pattern somethink >>> like this (each character represents a chunk, and the heap size is 40MB, >>> so the heap is 10 chunks): >>> >>> 1. Allocate into S0 >>> |00000 | >>> >>> 2. Collect into S1 >>> |0000011 | >>> >>> 3. Release S0 >>> | 11 | >>> >>> 4. Allocate into S1 >>> |111 11 | >>> >>> 5. Collect into S0 >>> |11100110 | >>> >>> 6. Release S1 >>> | 00 0 | >>> >>> and so on. >>> >>> It's actually more complex than that, because the discontiguous region >>> is also shared with the large object space, the small and large code >>> spaces etc. >>> >>> regards, >>> Robin >>> >>> lltong wrote: >>> >>> >>>> Dear Robin, >>>> >>>> Thanks. >>>> I took a look at the "Space", seems that it will affect this code segment: >>>> >>>> if (vmRequest.type == VMRequest.REQUEST_DISCONTIGUOUS) { >>>> this.contiguous = false; >>>> this.descriptor = SpaceDescriptor.createDescriptor(); >>>> this.start = Address.zero(); >>>> this.extent = Extent.zero(); >>>> this.lastDiscontiguousRegion = Address.zero(); >>>> VM.memory.setHeapRange(index, HEAP_START, HEAP_END); >>>> return; >>>> } >>>> >>>> If VMRequest is used without parameters, its type will be equal to >>>> REQUEST_DISCONTIGUOUS, so that code segment is executed. But it seems to >>>> set the entire heap range for even one semi-space. Then where can >>>> another semi-space locate? >>>> >>>> Thanks in advance. >>>> >>>> Robin Garner wrote: >>>> >>>> >>>>> lltong wrote: >>>>> >>>>> >>>>> >>>>>> Dear all, >>>>>> >>>>>> I am a little bit confused here, as described in the source: >>>>>> >>>>>> / public static VMRequest create() { >>>>>> return new VMRequest(REQUEST_DISCONTIGUOUS, Address.zero(), >>>>>> Extent.zero(), 0f, false); >>>>>> }/ >>>>>> >>>>>> It seems request nothing. >>>>>> By the way, can anyone tell me the difference between dis-contiguous and >>>>>> contiguous space? >>>>>> Thanks a lot. >>>>>> >>>>>> >>>>>> >>>>>> >>>>> A VMRequest is a 'parameter object' - the only way a VMRequest is used >>>>> is to pass it to the constructor of a Space, in order to specify how the >>>>> Space should use virtual memory. You should look in the code for Space >>>>> to see how this information is used. >>>>> >>>>> A contiguous space is a single uninterrupted region of virtual memory, >>>>> eg [60000000-6FFFFFFF]. A discontiguous space consists of (potentially) >>>>> multiple regions, interleaved with other spaces. >>>>> >>>>> Arguably, the multiple 'create()' methods of VMRequest should have more >>>>> descriptive names. >>>>> >>>>> hth, >>>>> Robin >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >>>>> trial. Simplify your report design, integration and deployment - and focus on >>>>> what you do best, core application coding. Discover what's new with >>>>> Crystal Reports now. http://p.sf.net/sfu/bobj-july >>>>> _______________________________________________ >>>>> Jikesrvm-researchers mailing list >>>>> Jikesrvm-researchers@... >>>>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>>>> >>>>> >>>>> >>>> >>>> >>> ------------------------------------------------------------------------------ >>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >>> trial. Simplify your report design, integration and deployment - and focus on >>> what you do best, core application coding. Discover what's new with >>> Crystal Reports now. http://p.sf.net/sfu/bobj-july >>> _______________________________________________ >>> Jikesrvm-researchers mailing list >>> Jikesrvm-researchers@... >>> https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers >>> >>> >> > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > -- Regards, Liangliang ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
[rvm-research] About the GCHeaderDear all,
In the JavaHeader.java, it uses two words to store the object header. As I can understand , whatever ADDRESS_BASED_HASHING is enabled, the lowest two bits will be free and available for other usages. In the fields of CopySpace, it sets the LOCAL_GC_BITS_REQUIRED to be 2 but GC_HEADER_WORDS_REQUIRED to be 0. Does it mean that the lowest two bits in the JavaHeader.java are employed here to assist marking and forwarding? Thanks. -- Regards, Liangliang ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
[rvm-research] About the copyspace of nursuryDear all,
I am wondering, why there is only one CopySpace for Gen.java, as it emploies a copying nursury, there should be two. Thanks. Regards, Liangliang ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
|
|
Re: [rvm-research] About the copyspace of nursuryHi Liangliang,
Every nursery collection copies the surviving nursery objects out of the nursery and into the old space, so only one CopySpace is needed. (You may be thinking of HotSpot's collector, which I believe copies objects several times in the nursery before promoting them to the old space.) Cheers, Mike On Tue, 10 Nov 2009, lltong@... wrote: > Dear all, > > I am wondering, why there is only one CopySpace for Gen.java, as it > emploies a copying nursury, there should be two. > Thanks. > > Regards, > Liangliang > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Jikesrvm-researchers mailing list > Jikesrvm-researchers@... > https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Jikesrvm-researchers mailing list Jikesrvm-researchers@... https://lists.sourceforge.net/lists/listinfo/jikesrvm-researchers |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |