This makes much sense to me, Alex, I mean a dynamic heap size. In my understanding, there are following reasons to explain current hard limit status: 1. the GC design usually hopes to have continuous memory space. The dynamic heap increase and decrease may have difficulty to interact with OS so as to keep the GC heap continuous. 2. there is an assumption that the JVM fully controls its heap of given size, hoping they all resident in physical memory. The GC algorithm sometimes requires full-heap walking, but doesn't want to incur many page faults.
Basically these are because OS and JVM don't always cooperate friendly. But this is changing. See links below for your reference [1][2]. And I support to have a dynamic heap resizing in Harmony in the future. [1]http://www.bea.com/content/news_events/white_papers/BEA_JRockit_wp.pdf [2]http://www.cs.umass.edu/~emery/pubs/automatic-heapsize-ismm2004.pdf Thanks, xiaofeng On 7/29/06, Alex Blewitt <[EMAIL PROTECTED]> wrote:
I believe this might be of general interest and worth debating here, from a post on EclipseZone: http://www.eclipsezone.com/eclipse/forums/t77021.html#92035043 "Am I the only one that's frustrated that: 1) The -X options even exist at all. After all, they're so standard now (e.g. -Xmx256m) that the point of calling them 'non-standard' options is pretty much laughable. 2) That they felt the need to build another level of non-non-standard into command line options such that -XX is even necessary 3) That it's necessary to put limits on a system that uses garbage collection and should be able to release memory back to the OS at all? I mean, what is the point in artificially limiting the size of these anyway? I can see that there may be optimal tweaks that you'd want to perform on some server systems (e.g. initial sizes) and maybe for some constrained systems the maximal size too; but why isn't the default 'unlimited'? The only time I should see an OutOfMemoryError is when the OS refuses to give any more memory to the app, not when some artificial hard-coded limit is reached in some random defaults hard-coded into a C file. Name one other language/system/application that has such an arbitrary self-enforced maximal non-unlimited default built in. Heck, even OS resources (like ulimit or #file handles) are specified at the OS, not the application, level. With any luck, open-source VMs like Harmony won't be as anal with their memory management, and the default for such things will be unlimited. Just one of the benefits of an open-source version; you won't have to be artificially cramped by random decisions at the VM level." Alex. --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]