Menu

Java heap size error while running applicatio

Help
2010-03-29
2013-05-13
  • Vaibhav Ghodake

    Vaibhav Ghodake - 2010-03-29

    Hi,
    I am running one processing engine with Jensor.But i am getting java heap size error.The RAM is of size 2 GB and java heap size i specified is -mx1000M.Can you please help me to resolve this issue?
    Thanks
    Vaibhav

     
  • Suresh Malan

    Suresh Malan - 2010-03-29

    Hi Vaibhav,
        Could you provide more details:
    - As to which version of Jensor are you using.
    - What is the application like
    - How have you instrumented the application
    - And where exactly this Heap Size error coming in

    Will try to provide a solution based on this information.

    Regards,
    Suresh.

     
  • Vaibhav Ghodake

    Vaibhav Ghodake - 2010-03-29

    Hi Suresh,
    I am using Jensor v1.12.The application is basically simple java application which is reading data from one disk file of size 61428 KB and doing some processing on that text line by line.
    For instrumenation, i followed the same process mentioned in user guide.Also i am able to run the sample example given with installation.
    The excepation stack is
    Exception in thread "JensorThread" java.lang.OutOfMemoryError: Java heap space
    at com.tcs.perc.jensor.core.Histogram.<init>(Histogram.java:52)
    at com.tcs.perc.jensor.core.Profile.writeFiles(Profile.java:753)
    at com.tcs.perc.jensor.core.Profile.run(Profile.java:136)
    at java.lang.Thread.run(Unknown Source)

     
  • Amol Khanapurkar

    Hi Vaibhav,

    We have seen this error for the first time. It is related to capturing Top N slow running Methods. Is it possible for you to send us a tar so that we can reproduce it at our end. In the meanwhile, we will disable this functionality and send you a patch let us know if that works.

    -Amol

     
  • Suresh Malan

    Suresh Malan - 2010-03-29

    Hi Vaibhav,

         It would be of great help if you could zip all the files located at  %JENSOR_HOME%\output directory and send them. It will aid the development of the patch talked about in the earlier reply.

    Regards,
    Suresh.

     
  • Suresh Malan

    Suresh Malan - 2010-03-31

    Hi Vaibhav,

        As discussed, since the application is more or less like a batch program, the number of classes instrumented is very high.
    You can try out with instrumenting fewer classes. In this case you can instrument 2 out of the three jar files.

        Let us know in case you face any issues.

    Regards,
    Suresh.

     
  • Vaibhav Ghodake

    Vaibhav Ghodake - 2010-03-31

    Hi Suresh,
    As per your suggestion i am trying to instrument single jar at a time.I am able to do the things for jar "utility091230" which has around 189 classes.But for another jar "opinion091223 ", i am able to instrument it, but when i am using this instrumented jar for running the application, it is not showing any output,i mean to say that application is running as standalone application like withput jensor.Can you plz tell me the reason of it?
    Thanks,
    Vaibhav

     
  • Suresh Malan

    Suresh Malan - 2010-03-31

    Hi Vaibhav,

         Log generation will take place only when the instrumented code is invoked during the execution of the application.

         Hope that answers the question.

    Regards,
    Suresh.

     
  • Amol Khanapurkar

    Hi Vaibhav,

    On a side-note, your application executes approximately 930 million method calls including calls to commons logging, jwnl, stanford-parser and your application jar. Am using unreleased version of Jensor 2.0 which automatically instruments the whole JVM. On my machine in executes in approximately 200 seconds. A rough calculation indicates that there are 5 calls per microsecond.

    Now Jensor is not suitable for monitoring methods whose response times are of the order of microseconds. Jensor itself incurs an overhead of 10-30 microseconds per method. Now what that means in context of your application is that your application may run 100 to 300 times slower if you continue to  monitor all methods. Because of slower processing, all the available memory is also exhausted and hence OOME.

    What you should do is, monitor only application code. Exclude all the libraries from being monitored because I assume that even if the libraries take time to execute you are perhaps not going to change the library code e.g. stanford-parser.jar. Am I right?

    You may want to read up on setting up Filters in Jensor so that you can monitor exact packages, classes or methods that you are interested in as opposed to monitoring *.*. This info can be found in Jensor Usage manual. I am pretty sure if you monitor only your application code you will not get OOME. Hence a patch is not going to be required.

    -Cheers,
    Amol

     
  • Vaibhav Ghodake

    Vaibhav Ghodake - 2010-04-06

    Hi Suresh,
    I have one query regarding "Collate Records".Let us suppose we are profiling one application with Jensor.The recording of data is started at the application start up.The application execution is completed.Then i am going for "Collate Record" option to see the performance summary.It is showing one error as "no jensor is running".So how to collate the record of already completed (execution) application.
    Thanks,
    Vaibhav

     
  • Suresh Malan

    Suresh Malan - 2010-04-06

    Hi Vaibhav,

         Don't you think this particular query can go under a separate discussion.
         It would be of great help if a new discussion is started and this query is specified there.
    It would be easy for the people referring the forum to get help.

        Will surely answer the question there.
        
    Regards,
    Suresh.

     

Log in to post a comment.