Reducing JVM memory footprint

I want to deploy what may turn out to be a JavaSpaces application on some Windows PC clients. These clients will receive event notifications from a central server and then pop up a GUI for the user to respond to. These clients may be memory-limited and am worried about deploying a J2SE runtime purely for this application and eating up 30+Mb of RAM.
J2ME runtime seemed like it offered hope as regards reducing memory footprint but doesn't really seem aimed at a standard PC.
Does anyone have any advice as to which direction I should go in as regards JRE ?
Gary Roussak

I haven't checked into it thoroughly, but I've heard repeatedly that 1.4 has a smaller ram footprint. It is still in beta, so that may not be the way you want to go, but you still may want to look into it.
m

Similar Messages

  • Reducing JRE memory footprint

    I want to deploy what may turn out to be a JavaSpaces application on some Windows PC clients. These clients will receive event notifications from a central server and then pop up a GUI for the user to respond to. These clients may be memory-limited and am worried about deploying a J2SE runtime purely for this application and eating up 30+Mb of RAM.
    J2ME runtime seemed like it offered hope as regards reducing memory footprint but doesn't really seem aimed at a standard PC.
    Does anyone have any advice as to which direction I should go in as regards JRE ?
    Gary Roussak

    Not all of the virtual memory assigned to a process is a problem - you need to look at the amount of memory that is commited (i.e. consumes pages of RAM and/or disk) to the process and not shared with other processes. Furthermore, the working set (the memory that has been recently accessed and needs to be in memory to avoid thrashing) is often much smaller than that.
    You can substantially reduce the private memory needed by the JVM by minimizing the heap size (-Xmx and -Xms parameters) - I've been able to run real programs accessing databases in as little as 2MB of heap.
    Chuck

  • Reduce SQLDeveloper memory footprint with JDK 1.7

    Hi!
    Some time ago in another thread (Re: Memory problems with Oracle sql developer there was a suggestion to try the new Garbage-First Garbage Collector. which should be production in JDK 1.7.
    I use SQLDeveloper with JDK 1.7 on 64bit Linux with good results:
    - everything feels faster, snappier
    - fonts rendering is different, but it is OK
    - the bugs noted in other threads are not a showstopper for me (the connections pane not showing up on startup, not being able to scroll more than 1 OCI array size of records in results grid)
    In the above mentioned thread there is a suggestion that the new garbage collector should improve memory footprint of SQLDeveloper, however, this is not my experience, since it behaves pretty much the same as with JDK 1.6 (resident size between 700 and 900 MB).
    Do I need to use these opotions (as per reffering thread) to enable the new garbage collector (see below) or is it switched on by default in JDK 1.7? The reduced memory footprint would be very welcomed, because I use Oracle Warehouse Builder at the same time (also a java app) and there is always much pressure on memory.
    AddVMOption -XX:+UnlockExperimentalVMOptions
    AddVMOption -XX:+UseG1GC
    AddVMOption -XX:+G1YoungGenSize=25m
    AddVMOption -XX:+G1ParallelRSetUpdatingEnabled
    AddVMOption -XX:+G1ParallelRSetScanningEnabled
    Thanx
    Aleksander

    Hi Aleksander,
    Glad to hear of your good report on Java 7's HotSpot VM regarding performance -- it has various enhancements, of which the new garbage collector is just one. In terms of interpreting memory footprints, take a look at:
    http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#generation_sizing
    Note the diagram indicates total heap size does not include the permanent generation memory. Xmx limits the heap size (the young and tenured generation). MaxPermSize limits class and method metadata plus static variable content. (Apparently starting back in Java 5 there are even some cases where the permanent generation space can be shared by multiple VM instances to improve start-up time and reduce memory usage.) These two limits control distinct, non-overlapping areas of memory.
    When monitoring a Java application's heap consumption with a profiling tool, I doubt the reported usage will exceed the Xmx limit by much. Monitoring with Windows Task Manager, however, can be a bit misleading. I have read several critiques in years past on how Task Manager reports program memory consumption. "Mem Usage" is actually the working set size. "VM Size" is program private memory rather than the true virtual size. And who knows how it tracks the Java VM's permanent generation size. Will it depend on whether it is shared or not?
    So I cannot really recommend any additional parameters to you. Just trust in the Xmx setting and hope that SQL Developer keeps any memory leaks to a minimum.
    Hope this helps,
    Gary

  • Reducing the memory footprint of our Sybase ASE based SolMan install

    Hello All,
    We are doing a test install of SAP Solution Manager 7.01 on Sybase ASE 15.7.
    Since this is just a test setup, we started off with a lower-than-recommended hardware configuration (4 GB RAM only) due to time constraints and since we were 'assured' that we could do basic testing with this setup.
    While post install performance of SolMan was decent, performance during solman_setup (setting up technical monitoring) has become appalling. We are not able to complete the configuration process at all as the SolMan configuration web application has become very unpredictable and extremely slow.
    The SolMan install is centralized and on a windows 2008 box. Windows task manager shows consistent memory usage of up to 90 - 95%. We also tried reducing the total number of work processes to just 8 but that did not help much. We see in 'task manager > resource monitor' that sqlserver.exe process is taking a shareable working set close to 2 GB of RAM whereas the committed memory much less (34 MB). Please tell us about any memory optimization we can perform for SolMan / Sybase ASE in order to complete technical monitoring setup using Solman_setup. We were hoping that we could change the  'total logical memory' setting for the DB directly using DBACOCKPIT tcode (in order to reduce the max memory setting) but could not do so as the it seems to be read-only. We could not find much documentation/posts regarding memory optimization for the DB. Please help out. Thanks!
    -Regards,
    Arvind

    FWIW ... ASE's 'max memory' setting can be changed on the fly, while 'total logical memory' is a calculated value that you cannot change (ie, it's 'read only'; changing 'max memory' will cause 'total logical memory' to change automatically). [NOTE: DBACOCKPIT is a SAP-provided application that sits on top of ASE; while I know what's doable when connected directly to ASE I do not know if DBACOCKPIT has disabled the ability to change some configuration settings like 'max memory'.]
    As for the SolMan performance issues ... I'd recommend reposting your issue in the SAP Applications on ASE discussion group where you're likely to get the attention of more folks with SAP application (on ASE) experience.  (While someone may jump in here with SolMan suggestions, SolMan is a SAP application and this group isn't really geared towards SAP applications.)

  • Reducing the memory footprint of Sybase ASE

    Hello All,
    We are doing a test install of SAP Solution Manager 7.01 on Sybase ASE 15.7.
    Since this is just a test setup, we started off with a lower-than-recommended hardware configuration (4 GB RAM only) due to time constraints.
    While post install performance of SolMan was decent, performance during solman_setup (setting up technical monitoring) has become appalling. We are not able to complete the configuration process at all as the SolMan configuration web application has become very unpredictable and extremely slow.
    The SolMan install is centralized and on a windows 2008 box. Windows task manager shows consistent memory usage of up to 90 - 95%. We also tried reducing the total number of work processes to just 8 but that did not help much. We see in 'task manager > resource monitor' that sqlserver.exe process is committing close to 2 GB of RAM when in fact it seems to be using much lesser when seen directly in 'task manager > process tab'. Please tell us about any memory optimization we can perform for Sybase ASE in order to complete out Solman_setup. We were hoping that we could change the  'max memory'/'total logical memory' setting for the DB directly using DBACOCKPIT tcode but could not do so as the parameters seems to be read-only. We could not find much documentation regarding memory optimization for the DB. Please help out. Thanks!
    -Regards,
    Arvind

    FWIW ... ASE's 'max memory' setting can be changed on the fly, while 'total logical memory' is a calculated value that you cannot change (ie, it's 'read only'; changing 'max memory' will cause 'total logical memory' to change automatically). [NOTE: DBACOCKPIT is a SAP-provided application that sits on top of ASE; while I know what's doable when connected directly to ASE I do not know if DBACOCKPIT has disabled the ability to change some configuration settings like 'max memory'.]
    As for the SolMan performance issues ... I'd recommend reposting your issue in the SAP Applications on ASE discussion group where you're likely to get the attention of more folks with SAP application (on ASE) experience.  (While someone may jump in here with SolMan suggestions, SolMan is a SAP application and this group isn't really geared towards SAP applications.)

  • Solaris JVM memory footprint

    WLS8.1sp4 running on Solaris configured with:
    -Xms1024m -Xmx1024m -XX:NewSize=256m
    -XX:MaxNewSize=256m -XX:PermSize=256m
    -XX:MaxPermSize=256m -XX:SurvivorRatio=3
    -verbosegc -XX:+PrintGCDetails
    Monitoring java process with "pestat" shows that memory consumption is constantly growing:
    PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
    26607 acms 1505M 446M run 0 10 0:02.51 9.3% java/66
    26607 acms 1529M 487M run 28 10 0:02.39 18% java/66
    26607 acms 1560M 542M run 0 2 0:04.09 16% java/66
    26607 acms 1604M 620M sleep 20 10 0:00.31 11% java/66
    26607 acms 1645M 687M sleep 20 10 0:00.31 13% java/66
    26607 acms 1687M 752M run 28 10 0:04.34 20% java/66
    26607 acms 1719M 811M run 1 10 0:03.26 17% java/66
    26607 acms 1764M 880M run 19 10 0:03.12 19% java/66
    26607 acms 1803M 960M sleep 20 10 0:00.31 20% java/66
    26607 acms 1857M 1038M run 28 10 0:01.07 19% java/66
    26607 acms 1879M 1090M run 28 10 0:01.43 15% java/66
    26607 acms 1889M 1248M run 20 10 0:01.41 50% java/65
    26607 acms 1924M 1440M sleep 20 10 0:00.31 24% java/65
    Application uses BEA XA OCI drivers to connect to Oracle 8.1.5 (I know that it's old and oci should be replaced with thin). Is there any way to prove that memory is growing in native oci?

    Sorry, this newsgroup is about JRockit (which isn't available for solaris - yet).
    /Staffan

  • How to reduce memory footprint

    Hello, while I observed that Audition always loads whole audio document into memory, I'm having quite a problem when processing long multichannel audio files as the whole physical memory gets utilized instantly I'm getting exhaustive disk swapping. This is especially awkward for long operations. I'm having a question if there's a way to reduce the memory footprint, ie. to Audition loads into memory just the file part that it's just working with, or to turn off undo. I assume the rapid memory usage is caused by collecting undo data also, whose I don't need in most cases.

    You can use the Clear History button in the History page to clear all undo data or selectively clear individual steps from History.

  • SQL Developer Memory Footprint

    We're looking at replacing around 200 TOAD licenses with SQL Developer. The only technical concern is the memory footprint, as in many cases it would be run from a terminal server with dozens of people logging on. A VM Size of 150MB seems to be not unusual for SQL Developer, and that all adds up of course.
    Are there any recommendations for reducing the memory footprint, or at least not letting it get much higher than 150? Features that can be turned off by default, versions of JDK, etc?

    Hi,
    The memory consume is quite worrying.
    However change the code into VB / Delphi will lose its availability as Java's write once run anywhere. :-)
    You won't be able to use this tool on Solaris, Linux, and Mac without changing the code and compiler. Thus would be less acceptable.
    I wonder if limiting SQL Dev's initial class load would give impact on memory consume.
    And why it seems that Java's garbage collector didn't do any collecting since the memory gets higher and higher time by time.
    Or maybe the code doesn't allow the object's become collectable?
    I ever get memory reach up to 500MB after doing a canceled Export Wizard for USER.
    But..... memory would never come down.
    Regards,
    Buntoro

  • Low Memory Footprint JVM needed, Please suggest.

    Hi guys,
    I want a light weight (low memory footprint) Java Virtual Machine compatible with Java 1.5. It should be open source. Can anybody suggest me please. I've googled and tried to use some JVMs like Kaffe and SableVM. But I want some reliable VM.
    Thanks,
    Dhaval.

    Dhaval.Yoganandi wrote:
    can you flash more light on it ?
    Dhaval.Yoganandi wrote:I'm currently using Sun JVM with Java 1.5 its taking 35-40 MB of RAM and 333 MB in VRAM. I need to make very low. how can I do that ? I've tried many options to start sun JVM but no luck.. Virtual Memory is reduced to 280MB nothing else.. I want it to consume Virtual Ram only 64MB and RAM only 30MB..
    You need to tell us what tool you are using to arrive at those numbers.

  • JVM memory breakup

    Hi,
    My java application (with jdk1.5.0_03) shoots upto 169 MB of Process size (seen in Task manager)
    and the heap size when printed (Runtime.totalMemory()-Runtime.freeMemory())
    shows as 68 MB. I assume that the process size is the total JVM memory.
    I would like to know exact breakup of JVM memory; is it possible to find out the individual parameters that contribute to the total process memory.
    Thanks
    Srila

    Hi,
    I have a similar kind of problem.
    We have a web-application running on jdk1.5 and tomcat 5. I want that my application should not take more than 48 MB memory on to my machine. I used the -Xmx48m option, but it just controls the heap memory. But what about the non-heap memory? Here are few things I have noticed
    -> when I use JConsole to monitor the application, I found that my applications non-heap memory Max is set to 96M.
    -> Another thing I have noticed that when I use "top" command to monitor memory footprint of my application, the RSS (which shows the PHYSICAL MEMORY USED ) shows an alarming 125MB of usage ( Sometimes when i use -server option it used to go upto 250M ) , which may harm my other applications which are memory prone. Even when the GC runs java do not free any memory for other application.
    -> I have tried many options like
         -XX:+UseConcMarkSweepGC
         -XX:NewSize=8m -XX:MaxNewSize=8m -XX:SurvivorRatio=2 -Xms48m -Xmx48m -Xss64k
         -XX:MaxHeapFreeRatio=20 -XX:MinHeapFreeRatio=10 -XX:NewSize=32m -XX:SurvivorRatio=32 -Xss256k -Xms48m -Xmx48m
         -XX:+UseParallelGC -XX:GCTimeRatio=20 -Xms30m -Xmx30m -Xss2048k
         but failed to restrict it to 48M
    Before using Sun JDK5 we are using IBM jdk1.3 with tomcat 3 with green thread. So we were able to configure it with just one option -mx48m. I am really stuck. I cannot believe that Sun have not given us any control on the maximum memory usage. Please help me .
    Regards
    Purav Gandhi

  • When i upload the files thorugh internet jvm memory is taking so much.

    i have integrated a file upload in my webapplication(JSP)
    when i upload the files thorugh internet jvm memory is taking so much.
    how can i reduce it.
    any open source for file upload process is there?
    thax,
    R. Ramasubramaniam.

    Suggestion: read [the documentation|http://commons.apache.org/fileupload/using.html] for it.
    By default it will store files in memory up to about 10k. Larger than that will be written to disk.
    If you are really worried about memory, perhaps you should take a look at the [streaming API|http://commons.apache.org/fileupload/streaming.html]
    How large are the files being uploaded?
    How many users are we talking about?

  • Apache FOP: reducing/reclaiming memory?

    FOP does a marvelous job in generating documents, indeed. However, the memory footprint is also extraordinary (especially for larger documents). What's the most secure way to clean up fop and reclaim all memory fop used (if possible)?

    The best way is to use multiple page-sequences. Only put so much content in a single page-sequence. I use FOP in production and have successfully produced 1,000+ page documents without running out of memory. It also helps to up the heap size of your JVM using something like -Xmx512m when starting the JVM.
    Another trick is to use SAX instead of DOM to produce the XML that is eventually turned into the PDF. The FOP distribution has examples of using SAX.

  • How to minimize OC4J memory footprint?

    We use Oracle 9iAS R2 on a Windows 2K server with dual Xenons and 2 GB physical RAM as an integration server. There the various developers all have differenct OC4Js set up for testing. Now an Oracle rep once told us that many OC4Js within an iAS instance are no big deal because an OC4J had a memory footprint of about 3 MB RAM.
    That sounded too good to be true. And in our case, is isn't true - an OC4J takes up about 50 MB of RAM right after its start. I tried to minimize the Java heap through the OC4J server attbributes in Oracle Enterprise Manager (like "-Xms16") but that didn't make an ounce of a difference.
    So what's the memory footprint of an OC4J inside an iAS instance? And can I reduce it somehow?

    This must be a marketing gag. Client Swing Apps tend to consume more than 3MB.
    I'm not sure but I guess the iAS is the memory eater. We currently have a test installation on a Solaris machine and the iAS pages up to 3GB when accessing the enterprise manager web site. Have a look into the performance guide and try to switch off all unecessary things. Note that there are to different VM switches: -Xms configures the initial heap size a VM should have (growing is expensive) be whereas -Xmx configures the max size the heap can grow (wheares 64MB is default). Again the documenation says that 2MB is then min (not much availabe for OC4J).
    I've you found it - please tell me! :-)

  • Memory Footprint meaning

    What do u exactly mean by Memory Footprint? How can u ascertain whether memory footprint has a major role to play in a variable?

    What do u exactly mean by Memory Footprint? The term is usualy used for the amount of memory used by the JVM itself for its operation, not counting the memory needed for the programs it runs.
    How can u
    ascertain whether memory footprint has a major role
    to play in a variable?Huh?

  • JavaServer memory footprint - 80-100MB

    Hi,
    We are running WLE 5.1 (patch 63) on Solaris 7. Our WLE domain contains a
    combination of Java and C++ servers. We are concerned about the memory
    footprint of the Javaservers. On Solaris, the image size of each
    'JavaServer' ranges from 80MB up to 110MB. We are running up to 20
    Javaservers in each domain so obviously, we are very concerned about this in
    production. Even simpapp uses up to 50MB !
    Are there any good approaches to reduce the footprint of the Java servers
    e.g. Will combining multiple servers into a single VM (using the MODULE
    syntax) help ?
    We have tried the -mX etc. commands on the VM but with little impact or
    success.
    Thanks
    Dermot

    You can find out the address ranges for your young generation, old generation, and permanent generations by running with the -XX:+PrintHeapAtGC flag. That produces output meant for VM developers, but the information is there. You'll get something like Heap after GC invocations=2 (full 1):
    PSYoungGen      total 3584K, used 0K [0xffffffff38000000, 0xffffffff38400000, 0xffffffff78000000)
      eden space 3072K, 0% used [0xffffffff38000000,0xffffffff38000000,0xffffffff38300000)
      from space 512K, 0% used [0xffffffff38300000,0xffffffff38300000,0xffffffff38380000)
      to   space 512K, 0% used [0xffffffff38380000,0xffffffff38380000,0xffffffff38400000)
    PSOldGen        total 8192K, used 134K [0xfffffffeb8000000, 0xfffffffeb8800000, 0xffffffff38000000)
      object space 8192K, 1% used [0xfffffffeb8000000,0xfffffffeb8021a98,0xfffffffeb8800000)
    PSPermGen       total 24576K, used 2415K [0xfffffffe98000000, 0xfffffffe99800000, 0xfffffffeb8000000)
      object space 24576K, 9% used [0xfffffffe98000000,0xfffffffe9825bfd8,0xfffffffe99800000) showing your generations, in order: the permanent generation at [0xfffffffe98000000..0xfffffffeb8000000), the old generation at [0xfffffffeb8000000..0xffffffff38000000), and the young generation at [0xffffffff38000000..0xffffffff78000000). You should be able to match those address ranges up with the output of pmap to explain the pmap output. The collectors we have currently always map the heap as three separate (but adjacent) regions. The order of the generations is different for the different collectors, for obscure internal reasons. The address range shown will be reserved, but won't be committed unless you are using the space.
    That said, I don't know what your mapping is at 0000000100114000 is. Do you have any native libraries that malloc space?

Maybe you are looking for

  • How to calculate First Date of Posting Period in BEx Query

    Hi,          I have  2 reporting requirements as follows: 1) User will either enter a single posting period in a fiscal year or can enter a range of posting periods. Based on user selection I need to display three key figures in a report. Key figure

  • Itunes 10.4 Windows 7 x64 Ipod touch does not restore

    Itunes 10.4 erased all data on my Ipod touch on my brand new Gateway Windows 7 laptop. But, it does not want to restore. It stops at the the final restore step. Error code 6 from Itunes. Brand new machine, fresh install of Itunes 10.4 from Apple site

  • Upload Purchase Orders - SRM 5.0

    Can any one tell me the name of the function module / bapi / program that is provided within SRM that will allow me to upload purchase orders via a spreadsheet. This is apparently supplied as standard. Thanks in advance. Keith

  • How to create a contact sheet of images in CS5

    How to create a contact sheet of images in CS5.  Different set up than older version I worked on before.

  • Query for Dr Clap

    Hello I need to know as to how to load a properties file recursively from inside a class file recursively looking for it from the the concerned class till the top pf package hierarchy.Ofcourse if i have my properties file at the root of my package hi