in reply to I ran out of memory

This usually can mean your app's data has grown over time and is now taking more memory than you have in real and swap. The other thing that can be happening is maybe there is another app of the server that has now grown to a large size and is taking most of the system memory. try using tools like top, ps, free or whatever is available on the operating system you are running on to see where the hog is.


-Waswas

Replies are listed 'Best First'.
Re^2: I ran out of memory
by ido50 (Scribe) on Aug 26, 2004 at 17:03 UTC
    Okay so first of all, the website is stored on a server that I don't own, so I can't run such commands.
    The data the program uses is stored in a DBM database, and it's only the beginning so it's quite small really.

    I've used the following memory test script I got from a certain website. It tries to use about 8MB of memory. It fails to do so:

    #!/usr/bin/perl $| = 1; print "Content-type: text/html\n\n"; print "Memory/Resource Test<BR>\n"; print "Number is the amount of memory used<BR>\n"; print "If you don't see 'Completed Test!' at the bottom, the test fail +ed<P><HR>\n"; for ($i = 10000; $i <= 8000000; $i += 100000) { $x = " " x $i; print "-"; print "| $i ; Time (secs): ", (time - $^T), "<BR>\n" if $i % 1 +000000 == 0; } print "Completed Test!\n"; exit(0);
    So I guess my host limits the ammount of memory my CGI programs can use...

    -------------------------
    Live fat, die young
      You can probably request a higher limit for an additional fee. Talk to your hosting provider for more info.

      ------
      We are the carpenters and bricklayers of the Information Age.

      Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

      I shouldn't have to say this, but any code, unless otherwise stated, is untested

        Yeah I guess, but wouldn't you say it's somewhat a problem with my code. Maybe I should try to reduce the amount of operations the program does. For example, the program generates HTML pages 'on-the-fly', which basically means slurping the data from the database, wrapping it up in nice HTML code and printing it. Maybe have the program create an html file and just let users view the file directly instead of making them access the program itself?


        -------------------------
        Live fat, die young