?
Solved

My program eats up a lot of memory!

Posted on 2003-11-08
4
Medium Priority
?
272 Views
Last Modified: 2010-04-16
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?
0
Comment
Question by:DeuceEE
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
4 Comments
 
LVL 22

Accepted Solution

by:
Mohammed Nasman earned 300 total points
ID: 9709410
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
 
LVL 1

Author Comment

by:DeuceEE
ID: 9709414
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
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 9709440
>>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
 
LVL 1

Author Comment

by:DeuceEE
ID: 9709448
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

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses
Course of the Month11 days, 18 hours left to enroll

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question