[Solved] eating up the RAMDISK and causing low memory warnings

I’ve built a screensaver for a client that utilizes a 3.2MB .swf file, sized 1920x1080, 24fps. I’m getting word back from the client that in testing, the screensaver is eating up the RAMDISK and causing a pop up window warning of low memory.

Is there a process where the screensaver might be saving to a temp file?

From what I’ve read on the forum, my screensaver is optimized (all images are 1:1 in the .swf file, jpeg compression ratio of 80, low fps, etc.). What could be causing this issue?

A rapid response would be greatly appreciated as the screensavers are for floor computers in a tradeshow that is getting ready to go live.

Thanks,

Jef

How fast is the memory leak happening? We’ve seen some cases of slow leaks but those typically cause problems over the course of several days of continuous running.

You say “RAM DISK” which is a very specialized setup that most computers don’t use (see http://en.wikipedia.org/wiki/Ram_disk ) Are you sure that’s what the client is using? If so, suggest you ask them why they are using a RAMdisk in the first place?

You can test for memory leaks yourself: Simply open your project in iScreensaver Designer, and start it running (either in a window, or fullscreen). At the same time, open Task Manager (windows) or Activity Monitor (Mac) and you can watch the “iScreensaver Designer” process’s RAM usage. It should go up at first and then remain steady.

Further questions:

  • what OS?
  • what version of Flash Player installed?
  • what version of IE installed?

super fast response, you guys are awesome. I have a call with the client in 2 minutes, will have answers for all your questions after that.

you are very welcome.

If their system (hardware/software) is something we have in house, we may be able to test it if you send us a copy of your screensaver.

Here you go:

RAMDISK because they’re using thin clients only, RAM or Flash.
OS: Windows 7 embedded
Flash Player: 11
ID: 9

Suggestions?

So the bad news is that we don’t officially support Windows 7 Embedded (for list of supported OS’s, see : http://iscreensaver.com/requirements.shtml )

The good news is that there’s no particular reason it shouldn’t work, but you are in uncharted waters here.

For a start, why don’t you send us a copy of your SWF file via email and we’ll see if we identify any general memory leaks?

got the file, thanks.

We see something interesting (you can probably reproduce this on your own).

Open the SWF file inside iScreensaver Designer, and then open the preview window (so the SWF file is visible, although paused). We see what appears to be a memory leak of about 100KB/second. We see this on both OS X and Windows 7. But it’s only happening with SWF content.

This is new to us, so our immediate suspicion is that there may be a memory leak in the newest versions of the Flash Player Plugin itself.

100KB/second is about 6MB/minute (or 360MB/hour). So on a modern 32bit OS you could safely leak this much memory for 8-10 hours straight before it became an issue. My guess is that your client’s thin clients have less RAM than that? Or is it taking 10 hours for them to see the problem too?

One quick workaround : it appears as if much of the memory is freed if the screensaver transitions between one sequence item and the next item. So you could put an explicit iscr:next command inside your SWF file which would trigger a full reload of the item, and then just program this to happen once in a while (perhaps hourly?). This reload will cause a cut-to-black visually so you may want to build a fade to black into the SWF itself.

It’s not clear if this solves the memory leak or just slows it down greatly, but for practical purposes a slow memory leak is not really a problem.

Other ideas: you might try using an older (or newer) version of Flash Player in case the leak is better in a different version.

Let us know what you find?