java.lang.OutOfMemoryError in Java

前端 未结 5 1841
轮回少年
轮回少年 2021-01-15 02:00

I want to login to ORKUT through a java progrram without involving IE or Firefox,

I am using HTMLUnit for this in the following manner:

import com.ga         


        
相关标签:
5条回答
  • 2021-01-15 02:25

    I think you need to find out what happens on clicking submit/sign-in because I doubt the jvm should run out of memory while doing this. Maybe it goes in some kind of an infinite loop and keeps downloading data? Maybe Google's sign-in recognizes when a non browser tries logging in?

    0 讨论(0)
  • 2021-01-15 02:27

    Try increasing the amount of heap space you are launching your application with; e.g.

    java -Xmx256M ...
    
    0 讨论(0)
  • 2021-01-15 02:43

    You are getting java.lang.OutOfMemoryError: Java heap space

    1) Easy way to solve OutOfMemoryError in java is to increase the maximum heap size by using JVM options "-Xmx512M", this will immediately solve your OutOfMemoryError.

    This is my preferred solution when I get OutOfMemoryError in Eclipse, Maven or ANT while building project because based upon size of project you can easily ran out of Memory.here is an example of increasing maximum heap size of JVM.

    Also its better to keep -Xmx to -Xms ration either 1:1 or 1:1.5 if you are setting heap size in your java application

    export JVM_ARGS="-Xms1024m -Xmx1024m"

    2) Second way to resolve OutOfMemoryError in Java is rather hard and comes when you don't have much memory and even after increase maximum heap size you are still getting java.lang.OutOfMemoryError, in this case you probably want to profile your application and look for any memory leak.

    If you are using Eclipse IDE,you can use Eclipse Memory Analyzer to examine your heap dump or you can use any profiler like Netbeans or JProbe. This is tough solution and requires some time to analyze and find memory leaks.

    3) There are many Tools to investigate and fix OutOfMemoryError in Java

    ----> Visualgc

    Visualgc stands for Visual Garbage Collection Monitoring Tool and you can attach it to your instrumented hostspot JVM. Main strength of visualgc is that it displays all key data graphically including class loader, garbage collection and JVM compiler performance data. The target JVM is identified by its virtual machine identifier also called as vmid.

    ----> Jmap

    Jmap is a command line utility comes with JDK6 and allows you to take a memory dump of heap in a file. It’s easy to use as shwon below:

    jmap -dump:format=b,file=heapdump 6054

    Here file specifies name of memory dump file which is "heapdump" and 6054 is PID of your Java progress. You can find the PDI by using "ps -ef” or windows task manager or by using tool called "jps"(Java Virtual Machine Process Status Tool).

    ----> Jhat

    Jhat was earlier known as hat (heap analyzer tool) but it is now part of JDK6. You can use jhat to analyze heap dump file created by using "jmap". Jhat is also a command line utility and you can rum it from cmd window as shown below:

    jhat -J-Xmx256m heapdump

    Here it will analyze memory-dump contained in file "heapdump". When you start jhat it will read this heap dump file and then start listening on http port, just point your browser into port where jhat is listening by default 7000 and then you can start analyzing objects present in heap dump.

    Hope this will help.

    0 讨论(0)
  • 2021-01-15 02:50

    The name of error gives a hint: the Java virtual machine needs more memory. You can increase heap space by adding the flag '-Xmx128M' to the jvm (or increasing the integer value just in case, the java call already has a Xmx parameter with a smaller value.

    With the example above you'll have 128 MByte heap space.

    0 讨论(0)
  • 2021-01-15 02:51

    You might also need to increase permSize at some point... so use the following to avoid both:

    java -Xmx512m -XX:MaxPermSize=256m ...

    0 讨论(0)
提交回复
热议问题