Forums > MaxMSP

Max crash with more than 2.5GB of movie data in 4GB ram

December 29, 2006 | 5:10 pm

Hi all,

Recently we started experimenting with lots of movie data loaded into ram. At the moment I am trying to load 2.5 GB of movie data into 4 GB of ram.

Without movie data max uses 42,5 MB. Then I start loading movies into ram until max uses up to 2.42 GB. Everything is still fine, but as soon as I go over 2.44 GB (about 600 MB total free memory left), max stops loading and crashes when I try to open a dialog. This is reproducable.

I’ll have to investigate this further (what happens with other objects and what happens with other applications) but I wondered if anyone else works with this amount of movie data in ram and experiences problems with it?

Mac OS 10.4.8, Max 4.6.2, Jitter 1.6.3b2, G5 quad 2.5 GHz ppc, 4 GB ram, btw in jitter 1.6.3b1, max stopped responding instead of crashing. If someone would like to see the crashreports, please let me know.

Mattijs

I use the patch below for testing together with the system memory tab of the Activity Monitor.

#P window setfont "Sans Serif" 9.;
#P window linecount 4;
#P comment 354 327 170 196617 3) a movie of 160.7 MB , (stops at 2.44 GB , doesn’t give loadram 1 msg , crash when I open a new dialog);
#P window linecount 1;
#P comment 37 328 256 196617 2) a movie of 160.7 MB (still fine , max uses 2.42 GB);
#P button 337 328 15 0;
#P newex 337 378 56 196617 opendialog;
#P comment 449 498 26 196617 done;
#P newex 433 479 32 196617 sel 1;
#P toggle 433 498 15 0;
#P message 390 498 46 196617 loadram;
#P newex 390 460 44 196617 zl nth 2;
#P newex 390 479 32 196617 sel 1;
#P newex 390 441 96 196617 route read loadram;
#P newex 337 397 68 196617 prepend read;
#P newex 337 417 63 196617 jit.qt.movie;
#P button 20 328 15 0;
#P newex 20 346 56 196617 opendialog;
#P comment 132 466 26 196617 done;
#P newex 116 447 32 196617 sel 1;
#P toggle 116 466 15 0;
#P message 73 466 46 196617 loadram;
#P newex 73 428 44 196617 zl nth 2;
#P newex 73 447 32 196617 sel 1;
#P newex 73 409 96 196617 route read loadram;
#P newex 20 365 68 196617 prepend read;
#P newex 20 385 63 196617 jit.qt.movie;
#P comment 474 292 26 196617 done;
#P comment 309 292 26 196617 done;
#P comment 144 292 26 196617 done;
#P newex 458 273 32 196617 sel 1;
#P toggle 458 292 15 0;
#P message 415 292 46 196617 loadram;
#P newex 415 254 44 196617 zl nth 2;
#P newex 415 273 32 196617 sel 1;
#P newex 415 235 96 196617 route read loadram;
#P newex 362 191 68 196617 prepend read;
#P newex 362 211 63 196617 jit.qt.movie;
#P newex 291 273 32 196617 sel 1;
#P toggle 291 292 15 0;
#P message 248 292 46 196617 loadram;
#P newex 248 254 44 196617 zl nth 2;
#P newex 248 273 32 196617 sel 1;
#P newex 248 235 96 196617 route read loadram;
#P newex 195 191 68 196617 prepend read;
#P newex 195 211 63 196617 jit.qt.movie;
#P newex 128 273 32 196617 sel 1;
#P toggle 128 292 15 0;
#P message 85 292 46 196617 loadram;
#P newex 85 254 44 196617 zl nth 2;
#P newex 85 273 32 196617 sel 1;
#P newex 85 235 96 196617 route read loadram;
#P newex 32 191 68 196617 prepend read;
#P newex 32 211 63 196617 jit.qt.movie;
#P comment 658 168 26 196617 done;
#P comment 493 168 26 196617 done;
#P comment 328 168 26 196617 done;
#P toggle 147 168 15 0;
#P newex 642 149 32 196617 sel 1;
#P toggle 642 168 15 0;
#P message 599 168 46 196617 loadram;
#P newex 599 130 44 196617 zl nth 2;
#P newex 599 149 32 196617 sel 1;
#P newex 599 111 96 196617 route read loadram;
#P newex 546 67 68 196617 prepend read;
#P newex 546 87 63 196617 jit.qt.movie;
#P newex 475 149 32 196617 sel 1;
#P toggle 475 168 15 0;
#P message 432 168 46 196617 loadram;
#P newex 432 130 44 196617 zl nth 2;
#P newex 432 149 32 196617 sel 1;
#P newex 432 111 96 196617 route read loadram;
#P newex 379 67 68 196617 prepend read;
#P newex 379 87 63 196617 jit.qt.movie;
#P newex 312 149 32 196617 sel 1;
#P toggle 312 168 15 0;
#P message 269 168 46 196617 loadram;
#P newex 269 130 44 196617 zl nth 2;
#P newex 269 149 32 196617 sel 1;
#P newex 269 111 96 196617 route read loadram;
#P newex 216 67 68 196617 prepend read;
#P newex 216 87 63 196617 jit.qt.movie;
#P newex 147 149 32 196617 sel 1;
#P message 104 168 46 196617 loadram;
#P newex 104 130 44 196617 zl nth 2;
#P newex 104 149 32 196617 sel 1;
#P newex 104 111 96 196617 route read loadram;
#P button 6 26 15 0;
#P newex 51 67 68 196617 prepend read;
#P newex 6 44 56 196617 opendialog;
#P newex 51 87 63 196617 jit.qt.movie;
#P comment 163 168 26 196617 done;
#P comment 23 26 279 196617 1) a movie of 322.5 MB (still fine , max uses 2.26 GB);
#P connect 5 0 3 0;
#P connect 76 0 75 0;
#P connect 75 0 67 0;
#P connect 67 0 66 0;
#P connect 71 0 66 0;
#P fasten 3 0 40 0 11 189 37 189;
#P connect 44 0 39 0;
#P connect 40 0 39 0;
#P fasten 3 0 4 0 11 65 56 65;
#P connect 9 0 2 0;
#P connect 4 0 2 0;
#P connect 66 1 68 0;
#P connect 68 0 70 0;
#P connect 70 0 69 0;
#P connect 69 0 71 0;
#P connect 39 1 41 0;
#P connect 41 0 43 0;
#P connect 43 0 42 0;
#P connect 42 0 44 0;
#P connect 2 1 6 0;
#P connect 6 0 8 0;
#P connect 8 0 7 0;
#P connect 7 0 9 0;
#P connect 68 1 73 0;
#P connect 73 0 72 0;
#P connect 41 1 46 0;
#P connect 46 0 45 0;
#P connect 6 1 10 0;
#P connect 10 0 35 0;
#P fasten 3 0 48 0 11 189 200 189;
#P connect 48 0 47 0;
#P connect 52 0 47 0;
#P fasten 3 0 12 0 11 65 221 65;
#P connect 12 0 11 0;
#P connect 16 0 11 0;
#P connect 47 1 49 0;
#P connect 49 0 51 0;
#P connect 51 0 50 0;
#P connect 50 0 52 0;
#P connect 11 1 13 0;
#P connect 13 0 15 0;
#P connect 15 0 14 0;
#P connect 14 0 16 0;
#P connect 49 1 54 0;
#P connect 54 0 53 0;
#P connect 13 1 18 0;
#P connect 18 0 17 0;
#P connect 87 0 86 0;
#P connect 86 0 78 0;
#P connect 82 0 77 0;
#P connect 78 0 77 0;
#P fasten 3 0 56 0 11 189 367 189;
#P connect 60 0 55 0;
#P connect 56 0 55 0;
#P fasten 3 0 20 0 11 65 384 65;
#P connect 24 0 19 0;
#P connect 20 0 19 0;
#P connect 77 1 79 0;
#P connect 79 0 81 0;
#P connect 81 0 80 0;
#P connect 80 0 82 0;
#P connect 55 1 57 0;
#P connect 57 0 59 0;
#P connect 59 0 58 0;
#P connect 58 0 60 0;
#P connect 19 1 21 0;
#P connect 21 0 23 0;
#P connect 23 0 22 0;
#P connect 22 0 24 0;
#P connect 79 1 84 0;
#P connect 84 0 83 0;
#P connect 57 1 62 0;
#P connect 62 0 61 0;
#P connect 21 1 26 0;
#P connect 26 0 25 0;
#P fasten 3 0 28 0 11 65 551 65;
#P connect 28 0 27 0;
#P connect 32 0 27 0;
#P connect 27 1 29 0;
#P connect 29 0 31 0;
#P connect 31 0 30 0;
#P connect 30 0 32 0;
#P connect 29 1 34 0;
#P connect 34 0 33 0;
#P window clipboard copycount 90;


December 29, 2006 | 5:48 pm

Mattijs,

> At the moment I am trying to load 2.5 GB of movie data
> into 4 GB of ram.

If [jit.qt.movie] is really based on QuickTime, I’m afraid that an old API limits the size to 2GB only.
(I got such problem with another environment for optical processing.)
Bigger, it would be necessary to load by chunks.
I hope I’m wrong on this!!! -:(

Could someone else comment on me?

Thanks,
Philippe


December 29, 2006 | 6:11 pm

On Dec 29, 2006, at 9:10 AM, Mattijs Kneppers wrote:

> Recently we started experimenting with lots of movie data loaded
> into ram. At the moment I am trying to load 2.5 GB of movie data
> into 4 GB of ram.

Sorry, but this limitation won’t leave until MaxMSP is a 64bit native
program (which isn’t happening in the near future), what you *can* do
however is use some advanced RAM disk software to add your movies
into a RAM disk for similar usage. I’ve not used any personally, but
there are a variety out there.

http://www.google.com/search?q=RAMdisk+software+OS+X+TIGER

-Joshua


December 30, 2006 | 12:50 am

Joshua and Philippe, thanks for your replies.

Although I’m sorry to hear this it’s good to know the logical cause for the crash. It took me quite some time to allocate the crash, perhaps, if possible, it is a good idea to print a message in the max window when the 2gb limit is reached.

Best,
Mattijs


December 30, 2006 | 2:00 pm

Quote: jkc wrote on Fri, 29 December 2006 19:11
—————————————————-
> What you *can* do
> however is use some advanced RAM disk software to add your movies
> into a RAM disk for similar usage. I’ve not used any personally, but
> there are a variety out there.
>
> http://www.google.com/search?q=RAMdisk+software+OS+X+TIGER
>
> -Joshua
>
—————————————————-

And of course thanks for the ramdisk suggestion, I’ll try this :)
Mattijs


December 31, 2006 | 12:04 am

Thanks Joshua for explanation!
(I didn’t remember the exact cause.)

Mattijs wrote
—————————————————-
> it is a good idea to print a message in the max window when the
> 2gb limit is reached.
—————————————————-

Or even before!
Depends if your data are stored on disk or if it’s a continuous dataflow.
On disk, I’d put a routine to stop the load at, say 1.9.
Just in case.

Best,
Philippe


Viewing 6 posts - 1 through 6 (of 6 total)