I need help increasing the stack/heap size of my JVM

I am currently trying to run a recursive quick sort program to sort a reverse sorted array of 60,000. I realize this takes up a lot of memory and may not be the most efficient form of quick sort but I need to get some information from this program run. Everytime i try to run the program I get a stack overflow error. From what I have read on these forums this is due to an inadequate stack/heap. I have read that you just type a line of code in when you start up your JVM to increase the stack/heap but how exactly do you do this? Could someone give me a step by step process? I am new at this so the more details the better. Thanks!

public static void quickSort(int f, int l){
     if (f < l){
          int m = split(f,l);
          quickSort(f, m-1);
          quickSort(m+1, l);
public static int split(int f, int l){
     int x = a[f];
     int sp = f;
     for (int i=f+1; i<=l; i++){
          if(a[i] <= x){
             sp++;
             swap(i,sp);
     swap(f,sp);
     return sp;               
// A method to swap values of an array
public static void swap(int i, int j){
     int temp = a;
     a[i] = a [j];
     a[j] = temp;     
}Haven't really looked at the code, but basically you'd have a source of randomness (an instance of Random for example) and choose x like this instead:private static Random random = new Random();
public static int split(int f, int l){
     int x = a[random.nextInt(l-f) + f]; //but check for one-off errors here, I haven't checked this

Similar Messages

  • How to increase the Java Heap size ?

    Hi
    I am new to java. I have created a java application and i configured in Eclipse. While running my application it throws an error that
    "Exception in thread "Thread-21" java.lang.OutOfMemoryError: Java heap space"
    i have used threads in my application. Then i searched some forums regarding this. The answer i got is "Increase the java heap size" using
    "java -Xms64m -Xmx256m prog" in command prompt. while running.
    But i am not running my application in command prompt. I used Eclipse to run my application. Here my ultimate question is how to set the heap size while running the application in Eclipse and where to set in Eclipse.
    Kindly help me.
    Regards
    Ramesh E

    i have used 20 threads to extract the datas
    Then parallel i am starting one more thread to process the data. Means that i am starting 21st thread. In thread is throwing the error.
    20 threads:
    for (int i = 0; i < 20; i++) {
    try{
    extrThreads[i] = new Thread(this);
    extrThreads.start();
    }catch (Exception e) {
    System.out.println(e);
    21st Thread:
    public void processdata()throws Exception{
    Thread t = new Thread(this);
    t.start();
    if(t!= null)
    t.join();
    funtion();
    This thread is throwing the error

  • Any way to increase the default Heap size for all Java VMs in Solaris 8

    Hello,
    I have a java product that deals with large databases under Solaris 8. It is a jar file, started by a cron job every night. Some nights it will fail because it runs out of Heap memory depending on the amount of records it has to deal with. I know that I could increase the java VM heap size with "java -jar -mx YY JARFILE" command but I have other java products that are showing the same behavior, and I would like to correct them all in one shot if possible.
    What I would like to do is find a system or configuration parameter that forces all Java VMs to use a larger MAX Heap size than the default 16M specified in the Man page for Java. Is there a way to accomplish that?
    TIA
    Maizo

    You could always download the source and modify it.

  • "Segmentation fault" while running code, how can I increase the stack size?

    Hi, I only have very limited knowledge about c+ codes and compiling them and I would be very happy if someone can assist me.
    My problem: I have two c++ codes, one with an array size of ~100,000, the other with ~1,500,000. When I compile them using terminal g++ -o commands, the smaller one works with no problem (it takes less than a minute to run), the larger one gives "Segmentation fault". I think it is a memory allocation problem and I am not an expert on dynamic memory allocation which I want to avoid for now.
    My question: When I compile the large code in Windows Visual Basic, I can go to settings to increase the stack and heap sizes and it does work. Is there a similar thing in OS X Leopard? I found some commands to do that in the terminal window but I wasn't able to resolve my problem.
    Thanks for all your help.

    Thanks for the link, I actually looked for a developer discussion group but was not able to find it through the main discussion page. I reposted to my question there.

  • Need to Increase the Font Size of a screen field in a Dialog Screen ?

    Hi ppl,
    I have a requirement wherein i need to increase the font size of one field on a dialog screen .
    i was going through the threads and found this which has beautiful example given by vijay
    Increase text size in Screen
    But I'm facing a problem in implementing it since the value in the field (of which the font size needs to be increased) depends on a nother field filled by user at runtime only.
    Can anyone gimme some suggestions or alternative way to solve my problem
    Thanks
    Sachin Soni

    Hi Sachin,
    There is not way to change the font style.
    But you can add ur own text through icons or graphics.
    Create your own graphics or icons and include it in ur module pool.
    Or,
    Goto the Layout Editor of your Screen.
    Double click on the text field .. Double clk the text fild, and from the Botton right u can see an arrow icon -> click on that -> will open a Popup -> in that set Area Title to TRUE.
    Hope this solves your problem.
    Thanks & Regards,
    Tarun Gambhir

  • Cannot increase the stack size

    Hi,
    We have a program which gives a StackOverflowError. Trying the increase the stack size using command line options does not work. A simple program shows that the stack is the same size, whatever option we set.
    This is the program:
    class StackOverflowTest
    public static int counter = 0;
    public static void main(String[] a)
    try {
    sub();
    } catch (StackOverflowError e)
    System.out.println("recursive calls: "+counter);
    public static void sub()
    counter++;
    sub();
    We tried several -Xss (and -Xoss) settings: 600K, 2048K, 4M but got the same recursion deep: 16683 (with Eclipse), or 16689 (command line).
    We used Windows XP.
    Do you have any clue?
    Many thanks,
    Zsolt

    Oh good, they seem to have broken the forum formatting again.
    ====================================================================================================================
    Bug ID:     4362291     Stack size argument ignored (-Xss and -ss)
    ====================================================================================================================
    public class StackOverflowTest {
        public static int counter = 0;
        public static final void main(String[] a) {
            new Thread(new Runnable() {
                public void run() {
                    try {
                        sub();
                    } catch (StackOverflowError e) {
                        System.out.println("recursive calls: "+counter);
            }).start();
        public static final void sub() {
         counter++;
         sub();
    /code]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Overriding the default heap size of 64mb

    I run the java program on my pc on windows xp
    I need to increase the heap size, currently I launch the jar file using a batch file, the contents of the batch file are:
    java -Xms64m -Xmx512m -jar Lines.jar
    I have set the min and max heap size and when I click on the .bat file it launches the jar file with tose heap settings
    But I do not want to launch the jar file in this way(I don't want to use a batch file), is there anyway to override the default heap size for the java program to 512mb so that every time I launch the jar file the heap size is 512mb??
    Edited by: muddy777 on Sep 23, 2009 6:30 PM

    Vikash.SunJava wrote:
    set this in some machine startup like a scheduled task at machine startup
    java -Xms64m -Xmx512m
    This this will be default JVM settings.Huh?

  • The initial heap size must be less than or equal to the maximum heap size.

    All,
    Please help!!
    I have tested my Application Client Project in WSAD on my pc and it works fine.
    I have 1gb RAM on my pc. When I deploy the same app on another xp pc(same as mine but 512mb RAM) I get a heap size error. Here is the exact error:
    Incompatible initial and maximum heap sizes specified:
    initial size: 268435456 bytes, maximum heap size: 267380736 bytes
    The initial heap size must be less than or equal to the maximum heap size.
    The default initial and maximum heap sizes are 4194304 and 267380736 bytes.
    Usage: java [-options] class [args...]
    (to execute a class)
    or java -jar [-options] jarfile [args...]
    (to execute a jar file)
    where options include:
    -cp -classpath <directories and zip/jar files separated by ;>
    set search path for application classes and resources
    -D<name>=<value>
    set a system property
    -verbose[:class|gc|jni]
    enable verbose output
    -version print product version
    -showversion print product version and continue
    -? -help print this help message
    -X print help on non-standard options
    Could not create the Java virtual machine.
    Press any key to continue . . .
    Here is the batch file that runs my app:
    @echo off
    SET appClientEar=C:\corp\apps\mts\jars\MTSClientEAR.ear
    set JVM_ARGS=-Xms256M -Xmx256M
    set CLIENT_PROPS=C:\corp\apps\mts\jars\medicalclient.properties
    set APP_ARGS=
    call C:\bnsf\IBM\WebSphere\AppClient\bin\launchClientBNSF.bat "%JVM_ARGS%" %appClientEar% "-CCpropfile=%CLIENT_PROPS%" %APP_ARGS%
    @pause
    I have changed the value of Xms and Xmx of JVM_ARGS to different size but I sitll get error. Anyone knows what the problem is. Thanks..

    Don't know why, but the "maximum heap size: 267380736 bytes" value is just slightly less than 256*1024*1024, wheras the reported initial size is equal to that.
    Try setting the initial value to 255MB.

  • HT1535 When I plug my ipad into the computer to sync a message pops up saying it can not sync because there is not enough memory in the itunes library. Do I need to increase the memory in my itunes library and how?

    When I plug my ipad into the computer to sync a message pops up saying that the ipad can not sync because there is not enough memory on the itunes library. Do I need to increase the itunes library memory and how do I do this, or do I just need to trasnfer things out of itunes? Thanks.

    Try
    iOS: Device not recognized in iTunes for Windows
    I would start with              
    Removing and Reinstalling iTunes, QuickTime, and other software components for Windows XP
    or              
    Removing and reinstalling iTunes and other software components for Windows Vista, Windows 7, or Windows 8
    Before you reinstall the Apple software, also remove iCloud vi Control Panel Remove programs. The reinstall the Apple programs
    New cable and different USB port?
    Runs this and see if the results help with determine the cause
    iTunes for Windows: Device Sync Tests
    Try on another computer to help determine if computer or iPod problem

  • Need help identifying the application responsible for an insert...

    Hi,
    I'm a MSSQL guy and Oracle is still a bit mysterious to me.  I'm looking for some assistance tracking down the application in an environment which is responsible for particular inserts.
    For example, suppose I have 10 different programs running and inserting values to a DB.  I need to know which one of them inserts a "0" in a particular column.
    I found a trigger which will tell me the user, unfortunately these programs use a shared credential so that doesn't help me.... here's what I've got:
    CREATE OR REPLACE TRIGGER check_for_zero_insert
    AFTER INSERT
      ON DATA_TABLE_0001
      FOR EACH ROW
    DECLARE
      v_username varchar2(10);
    BEGIN
      -- Find username of person performing the INSERT into the table
      SELECT user INTO v_username
      FROM dual;
      -- Insert record into audit table
      INSERT INTO audit_table
      ( samplevalue
      sampletime,
      username )
      VALUES
      ( :sampletime,
      :samplevalue
       v_username );
    END;
    But again, username won't help me, I need the originating process if at all possible (either an executable name, PID, or something to identify the specific application on the other side.)

    use this in your trigger
    select sys_context('USERENV','OS_USER') ||'-' ||user  into v_username from dual;
    You might need to increase the v_username data type length.
    Thanks,
    GPU

  • How do define the limit of the max heap size?

    Hi All,
    I would like to know what should be the limit of the JVM max heap size.
    What will happen if we will not define it?
    What is the purpose of defining it from the technical point of view?
    Thanks
    Edited by: Anna78 on Jul 31, 2008 12:36 PM

    Defining a max heap space too large can have the following effect:
    If you create new objects, the VM may decide it is not worth getting rid of garbage-collectable ones, as there
    is still plenty of space between the current heap size and the max allowed. The result will be that the
    application will run faster and will consume more memory than it really needs.
    If the heap size is too small, but still sufficient, the application will do a lot of garbage-collection and therefore
    run slower. On the other hand, it will stay inside the tight space it has been allowed to use.
    The speed difference may or may not be noticeable, while the difference between 256M and 512M may
    or may not matter on today's computers.

  • Need help regarding the location of Exchange 2013 Logs for parsing

    Hi, I am trying to create reports based on the logs that are created on my exchange server. I am using
    exchange 2013. My problem is that I cannot handle every log, and instead want specific types of logs.
    I need help finding the specific locations of the following types of logs (If they even exist), so that I can parse them and use them effectively:
    Audit Logs (Mailbox logons, Mailbox permission changes, Mailbox property changes,
    Exchange store changes)
    Mail Report Logs (Mailbox size and growth, Mailbox storage growth, Enabled users, Expired and Soon-to-Expire Mailboxes)
    Exchange Traffic Reports (Details on size and amount of messages sent and recieved, Internet traffic [to and from], Traffic between exchange users)
    I understand this might sound like a huge undertaking, but any help that can be provided would be appreciated.
    Again, I need information on the locations of these types of logs on the exchange server, so that I can parse them. Collecting them all and searching through them is not practical for my available resources.
    Thanks,
    Matt

    Audit Logs (Mailbox logons, Mailbox permission
    changes, Mailbox property changes, Exchange
    store changes) ---- these are two type of logs, 1. mailbox audit logs and that is stored in each mailbox under dumpster
    http://technet.microsoft.com/en-us/library/ff461930(v=exchg.150).aspx however you need to
    enable
    it for individual mailboxes... 2. admin audit log, this is stored into a system mailbox dumpster.... http://technet.microsoft.com/en-us/library/dd335052(v=exchg.141).aspx
    Mail Report Logs (Mailbox size and growth, Mailbox
    storage growth, Enabled users, Expired and Soon-to-Expire Mailboxes) ---- there isn't any specific log for this, you would need to create some time of script to collect this every day for you and store it somewhere... This is a good start... http://www.stevieg.org/2011/06/exchange-environment-report/
    Exchange Traffic Reports (Details on size and
    amount of messages sent and recieved, Internet traffic [to and from], Traffic between exchange users) ----- This you can get from message tracking log... http://technet.microsoft.com/en-us/library/bb124375(v=exchg.150).aspx

  • Anybody know how to increase the plugin file size limit in Photoshop CS6 to greater than 250 mb?

    Can anyone tell me if it is possible to increase the plugin file size limit in Photoshop CS6 to greater than 250 mb and how to do it? Can plugins running in PSCC handle larger file sizes than CS6?

    Wow, thanks for getting back to me!!
    I am running the latest version of HDR Soft Photomatix Tone Mapping Plug-In - Version 2.2 in Photoshop CS6 on a fully loaded solid state MacBook Air. When I attempt to process files exceeding 250 mb with the plugin I get an error message and the plugin will not work. The plugin works fine with anything south of 250 mb. I have also optimized the performance settings in CS6 for large file sizes.
    The standalone version of HRD Soft’s Photomatix Pro easily processes files well in excess of 300 mb.
    I have contacted Photomatix support and they say that 250megs is simply the max file size that Photoshop will allow to run a plugin with.
    So is there any setting that I’m overlooking in Photoshop CS6 that will allow me to process these large files with the plugin? Or if there is indeed a file size limit for plugin processing in CS6 is the limit higher in CC?
    Thanks in advance for your help.

  • Increase the Oracle datafile size or add another datafile

    Someone please explain,
    Is it better to increase the Oracle datafile size or add another datafile to increase the Oracle tablespace size?
    Thanks in advance

    The decision must also includes:
    - the max size of a file in your OS and/or file system
    - how you perform your backup and recovery (eg:do you need to change the file list)
    - how many disks are available and how they are presented to the OS (raw, LVM, striped, ASM, etc.)
    - how many IO channels are available and whether you can balance IO across them
    Personal default is to grow a file to the largest size permitted by OS unless there is a compelling reason otherwise. That fits nicely with the concept of BIGFILE tablespaces (which have their own issues, especially in backup/recovery)

  • Increase Java Max Heap Size

    Hello ,
    How can I increase java max heap size to more than 2G .I tried a bunch of different sizes and anything under 2G works just fine so this appears to be a hard limit.
    system info:
    Linux server with process data model 32-bit ,Java 1.5 , total physical memory 9GB and available virtual and physical memory close to 4GB
    I would appreciate any guidance on how to resolve this.
    Regards,
    Omid

    warnerja wrote:
    Any application wanting to allocate that much of a heap size should be considered a rogue application and a system hog of gigantic proportions, not desirable to have running on anyones machine. Focus on designing it correctly so that it doesn't require so much memory in the first place.By very virtue of the fact that the author has a test box with 9 gigs of RAM (I'm inferring), it seems unlikely that this app will be distributed to just "anyone."
    However, if this is meant to be some server app that scales to an enormous memory capacity, you're probably better off not using the java launcher directly and instead using some enterprise container.
    I'm a complete newb when it comes to anything meant to be scalable though, so warnerja would probably have better advice than I would.

Maybe you are looking for