My program eats up a lot of memory!

I made a small MiniWMPlayer, which is just running off the notification icon and has a WMPlayer OCX object within it.

I open my Task Manager, look up my program while it's running and playing a song, I find it's taking about 38,000K of memory usage. I run the regular Windows Media Player, I play a song, and I compare its memory usage, it only takes 5,000K! I was amazed.

Can someone help me go through the objects I have and methods I use?
Let's start with the object I have on the forms.

- 2 Form (1 frmMain for seeking/buttons/etc., 1 frmLabel to animate the song info)
- 1 NotifyIcon
- 5 Timer on frmMain; here's a list of their names and what they do:
tim = to run only once to hide frmMain at startup after 5 seconds
timLoop = loops to see if a newer instance of the app sends a new file name to this current instance (to avoid multiple instances)
timDur = to update the Duration info of the song on frmMain
timback, timforward = used to animate the main window back and forth when the user requests it to show
- 3 Timer on frmLabel; all used to animate the song info back and forth and a pause in the middle
- 1 ContextMenu
- 1 OpenFileDialog

Having that said, do they affect the memory usage at all?
LVL 1
DeuceEEAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mohammed NasmanSoftware DeveloperCommented:
Hello

   Normal win32 app differ from .net app in this area, because .net app is managed code which require the CLR to run it and that make it take much more memory, I have some application built using Delphi which is large and big in .exe size, but take much less memory from any .Net app, because they don't require the CLR
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
DeuceEEAuthor Commented:
So if I actually make the same exact program with, say, VB6, it won't take as much?

If that's the case, a bigger project on .NET is not really memory-friendly, is it?
0
Mohammed NasmanSoftware DeveloperCommented:
>>say, VB6, it won't take as much?
I think yes, didn't test that with VB, just with Delphi
>>a bigger project on .NET is not really memory-friendly, is it?
no, it's not like that, the small or large project will run throuth the CLR, so at small project you will feel it take much memorty than should, but you have much advantages using managed code, for example you don't need to worry about freeing your objects, the garbage collection will do that for you
also there are more features avaliable in .net platform than using VB6, it's MS Futue ;-)
0
DeuceEEAuthor Commented:
Oooh. Now that makes sense. I do appreciate the garbage collection and other features that I actually used. If memory-usage is the price for that, so be it.
Thanks :)


Free points -- for everyone!!!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.