interface locking up when adding large number of images

Post your questions and problem reports here

interface locking up when adding large number of images

Postby mcgilles » Wed Aug 30, 2006 3:06 am

when I add a large number of images to a screensaver, particularly when there are already a large number in a screensaver, the interface seems to hang during the load process. it will often load the images very slowly, 1-2 per second (much faster when loading the first ones, but after there are many in there, it slows down) then it just locks up, nothing happens. task manager says the program is not responding, but it maintains a max out on both of my CPU's, I found that if I wait long enough, eventually it will finish the operation and everything will begin working again, but its hard to wait for it to load images for a long time without any indication that its even still working. maybe its not designed to handle very large numbers of images, but I hope that it would be able to do that anyway.

also, is there a way to embed the image data itself into the save files? it looks like it just saves references to the files on the harddrive, so if I were to open the screensaver file on another computer, or if the image files move, it won't be able to load.
mcgilles
 
Posts: 14
Joined: Thu Aug 24, 2006 1:21 am

Postby Karlis » Tue Sep 05, 2006 12:52 pm

Please let me know about what quantity of images are we talking, also please let me know the size of each image. Normally you should not use images larger than 1024x768 (although you can, it is a waste of CPU and space).

Project files are made this way (by reference) to increase speed and save disk space. If we would embed images into project files, it would take a lot of time to load any project.

Thanks!
Karlis Blumentals
Blumentals Software
www.blumentals.net
User avatar
Karlis
Site Admin
 
Posts: 3587
Joined: Mon Jul 15, 2002 5:24 pm
Location: Riga, Latvia, Europe

Postby mcgilles » Tue Sep 05, 2006 5:38 pm

that makes sense about the file size. are they stored as an absolute path or a relative path? I suspect that they are absolute paths which would make the most sense, however it has the limitation that if I were to transfer the save file with the image files over to another machine, if the images are not placed in the exact same location on the other machine the save file would become useless. some packages have an option to embed the images or keep them as references, maybe the option would be something to think of some day, however it is not a major concern.

I tend to make large screensavers for my own use. I have run into probelms with large screensavers on other packages and before buying this one I wanted to check to make sure it would handle some extreme data. professional screensaver producer in particular has a great looking interface, but it has terrible memory leaks, when I added a bunch of pictures to a slide show in that program it allocated all of my system's ram very quickly then crashed...your program does not do that, it works very well by comparison, no increase in memory usage even as I added a tremendous amount of images to the slideshow. looks like a well done program!

my test was with a bit over 20,000 images, most around 800x600-1024x768 or so. the total size of the compiled scr was around 1.6GB. I know that's extreme, but I wanted to see what it would do. I found out that if I add all of those pictures to it at once, it does appear to work. the user interface appears to freeze, task manager says its not responding, but the harddrive light still blinking indicates that it is still busy, I can also tell from the CPU usage that its still working. it takes a long time to add that many images but that's to be expected, once it finally completed it, the user interface started working again, and it was able to compile a screensaver file with that many images sucessfully. I was quite pleased with this result! I make big screensvaers like this for my own use so I can set the delay to 30-60 seconds and go literally months without seeing a repeat image.

I'm not sure what the problem is, the most important thing is that it does in fact work. even though task manager says its locked up and the interface will not respond, I know that if I just leave it alone it will eventually complete and start working again, but if you want to try to investigate why it did that, there's the info.

thanks!
mcgilles
 
Posts: 14
Joined: Thu Aug 24, 2006 1:21 am

Postby Karlis » Sat Sep 09, 2006 11:23 pm

Wow! Quite an experiment. I must say I am impressed. Very few customers would test a software against memory leaks and high loads. Have you worked in the field of software testing?

In fact we have never thought that anybody would need to use more than couple of hundreds of images, thus I guess we have never attempted to make interface so fast, it does not affect the quality of the screensaver after all. I will speak with developers about possible improvements to the interface, maybe we can optimize something here.

p.s. agreed that image paths could be relative in some way, this is another area for improvement
Karlis Blumentals
Blumentals Software
www.blumentals.net
User avatar
Karlis
Site Admin
 
Posts: 3587
Joined: Mon Jul 15, 2002 5:24 pm
Location: Riga, Latvia, Europe

Postby mcgilles » Sun Sep 10, 2006 1:51 am

I'm a software engineer myself, I've encountered enough memory leaks to know how to find them!

I'm honestly not so concerned about optimization or speed, when you put 20,000 images into a screensaver builder I would expect it to take a while to handle all of that data. it took over 2 hours to load all of it in there, the only thing I am concerned about is the lack of a progress indication. With smaller numbers of images you can see them being added as the program processes them, but when I put this many in there the program appears to stop responding, although its not. The only indication I have that the program is still working is that the CPU utilization hovers around 50% while its loading image data. Even if there was no speed up, if there would be some way to have a percentage or a progress bar which would keep working through the loading process it would provide a better indicator to just be patient and let it do its job. Does the process of loading the image data run in a separate thread from the interface code? If not then implementing that could solve the problem.

About the relative vs. absolute paths, the reason I ask is that the images I have stored to create screensavers are stored in a synchronized directory which automatically mirrors itself between a desktop and notebook computer, the directories are the same except on one computer its on the C drive and on the other its on the D drive. If the image paths are stored in an absolute manor then the saved screensaver file would not be able to locate the pictures if I opened it on the other computer.
mcgilles
 
Posts: 14
Joined: Thu Aug 24, 2006 1:21 am


Return to Screensaver Wonder Support

Who is online

Users browsing this forum: No registered users and 1 guest

cron