Reduce The Memory Usage Forcing To Garbage Collector To Collect With The Method?
May 1, 2012
I have a problem with an application, in this case I have a windows services. its function is generate reports depending of demand of our users.In some cases the memory usage of my windows services is to 2 gb of RAM. I disposed all objects that my application use . but the memory usage doesn't low.I tried to reduce the memory usage forcing to garbage collector to Collect with the method "GC.Collect"but it's not recommend because uses many time of CPU.Surfing on the internet I found a method named "SetProcessWorkingSetSize" that free memory usage correctly. http:[url]....but some cases my windows services named sapdkadm_procesoestandarejecucion.exe has some error message in event viewer is the next:
Faulting application sapdkadm_procesoestandarejecucion.exe, version 1.0.0.0, stamp 4f908fef, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51cdd, debug? 0, fault address 0x0000000000027ded.
The real problem is that when this happens my windows services restart
View 3 Replies
ADVERTISEMENT
Jul 7, 2011
I have prided myself in having a pretty clean code however in the game I am making I have a player view (showscreen) and a host view, which is a copy of the player view (on a smaller screen). This way the host can see what's going on.The problem is that the graphic doesn't dispose properly and Garbage Collector gets it, though I have noticed it will crash if GC doesn't get it in time. The larger the showscreen window the more junk gets put into memory, which sucks.I thought I had everything correctly disposed below but still doesn't get the job done.
[code]...
View 9 Replies
Mar 10, 2012
i wanna know for example if you have a few functions that actually creates a new sqlcommand in it and disposes them after use or is it better to have an sqlcommand at the main function and pass the sqlcommand in byref . and after using it. Juz clear the commandtext and the parameters.[code]
View 14 Replies
Mar 9, 2012
I've heard that the c# garbage collector can be 'more aggressive' than it's vb.net counterpart. Is this true? Are there any other differences in how garbage collection is run in vb.net vs. c#?
View 5 Replies
Dec 4, 2010
I have a function like the following: Public Function testFunction(ByVal input_string As String) As String
[Code]...
or just let the garbage collector do the job for us? Both the above functions work, but I want only know the best practice for performance...
View 6 Replies
Oct 25, 2010
with VB.NET + MySQL i am having a connection object which is public public MYcnn as MySql.Data.MySqlClient.MySqlConnection when my main form opens MYcnn will open & will be available for all the procedures & functions. i never close this connection until the last form of the application closes (yes of course i compromise of some security + performance issues)
my problems is(1)when & how the garbage collector works to collect my connection object if my connection object remains open for > then certain time(2) how to offer or fix the time of my connection object availableness to garbage collector (3) i would like to write an event for the connection object closed event(i am explicitly declaring the connection object)
View 5 Replies
Mar 2, 2012
I may be the only person still automating excel this way and I am looking at doing it in ways that better handle COM objects and such, but for now I just importMicrosoft.Office.Interop.Excel and go for it. Something that gave me a lot of grief at first was hanging excel.exe processes, but there are tons of resources online for fixing that. At this point I am pretty confident in my abilities to handle it.One thing I did notice and was wondering about is how does closing a windows forms application interact with excel.exe running in the background and likely more specifically the garbage collector. I have written quite a few excel automation projects and noticed that after I run my program .exe and it has completed there is an excel.exe process that hangs on until I close the pop up window from the windows forms application. Why is that happening?
View 1 Replies
Apr 17, 2011
I've noticed that every time I start a new thread in my program, the memory usage jumps about 1000k and it never goes back down. I have ensured that the thread is no longer running, and only one instance of my worker thread is ever running at a time. I am using ThreadPool.QueueUserWorkItem and ASyncOperation to get stuff done. The program starts using a Sub Main in a module that uses STAThread; I read that using STAThread instead of MTAThread makes it impossible for the Garbage Collector to get in and consider objects for garbage collection. However, when I change the STAThread to an MTAThread, the WebBrowser control in my frmMain cannot be instantiated.
I get this exception:
Code: An unhandled exception of type 'System.Threading.ThreadStateException' occurred in System.Windows.Forms.dll
Additional information: ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment. I do threading with the WebBrowser control, so will using MTAThread fix my problem? If so, how should I partition my code so that the WebBrowser control won't be affected by the above exception? I call the thread repeatedly with a timer (although only one instance ever runs at a time), and my program's memory usage starts at about 5000k and can jump to 300,000k+ depending on many times the thread needs to be called.
View 6 Replies
Dec 10, 2009
I have a windows app (2.0 framework) that's about 860k in size, just a small db app with a couple of data entry screens and a few reports (Cystal) I noticed that when the app starts the mem usage according to task manager is ~11,000k viewing just one report jumps the mem usage to 56,000k. i thought i could reclaim some of that memory by adding some GC.COLLECT() callls, but no luck. Mem usage stays the same in task manager.
So I made an even smaller test app with two forms....Form1 has two buttons , button1 Opens Form2, and button 2 calls GC.COLLECT()
From 2 contains a datagridview and 1 button. The form load for form2 executes the fill for the dataset that populates the datagridview and the button on Form 2 closes the form.
Here's the code for each form....
CODE:
No matter what I've tried so far I cannot seem to reclaim mem that gets used.
View 3 Replies
Jan 29, 2011
I have an application (i've been working on for a long time) that has many tabs and controls and quite a few components And a good deal of design code. And a list box that has around 100k items (i had to put a loader to pass the 3-4 seconds while its loading to prevent it from not-responding)I had a few Gc.collect calls in specific places (mostly after many items are added or removed). When my application loads, i call GC.collect only once at the end of the load. The program consumes around 35K memory by the time its loaded. However, i decided to mess around abit (don't worry i made backups)First i started putting gc.collect in some random places, and to my surprise the memory upon loading was observably decreasing. Then I went ahead and put a macro that puts GC.Collect before every End Sub, Exit Function, Exit Sub, and Return value, there is. Basically every block in my application had atleat one GC.Collect.
I fixed some 6 or 7 silly replace errors and compiled. When the program launched, the memory used at the end of launch was 21K!
At first glance that seemed great, but then i realized switching between tabs was VERY glitchy. and adding new lists took around 10x more time than usual (the loader stayed on for around 20 seconds!) And even though the memory looked good, the program was useless like this.Then i decided to mess around differently. I removed GC.Collect from the entire solution. It was no longer called even once.At first glance, when i launched the app it consumed just under 60K memory. That seemed terrible. However i realized something: even though my program in that state showed on taskmanager that it was consuming alot more memory than usual, it seemed like it was lighter than ever! Switching tabs was faster than before, especially every time i go to the tab that has the listbox control with 100k items. Loading items took around 3-4 seconds, but there was no stutter when the list finished loading whereas before it had an evident 0.3s stutter after the items were added.
This was all surprising to me because i thought GC.Collect was first of all, something that it doesnt matter where or how many times you call it. I thought it was just something that should be called at the end of work and i didnt think it would matter if it was called during work.Second of all, i thought GC.Collect only affected resources that are inaccessible, or resources my program is done with. How come the application feels faster when i don't call it?Third of all, i thought the VB CLR does most of the memory cleaning for me, and that GC.Collect was somewhat of a redundant command. It didn't seem so redundant to me at all considering the difference between using it heavily and not using it at all was around 38K in memory usage!
So i guess my questions are:
1) Do I need to call GC.Collect? WhereWhen do i call it?2) Why does calling it affect performance? And where does one draw the line between that memory stat on taskmanager and the program's performance?3) I also decided to run a small test. Why does a blank vb form application require 10K memory? How accurate is that stat shown on the task manager?
View 3 Replies
Apr 5, 2011
I found what seems to be an easy and effective way to reduce the memory consumption of my vb.net app. What I need to know is how "correct" or "proper" is the method I'm using for my application and what exactly is going on behind the scenes that I should worry about? I want to release memory every time a form closes. Here is how I reduce the required memory of my program:[code...]
View 7 Replies
Sep 24, 2010
I am working on VB.net multiuser application and when ever my any form open up memory rise and after some time out of memory exception is come.
I am working on VB.net 2008 and sqlserver 2005. I have use very much of shared object so second time it memory allocation is less, but how i can reduce it when form is close or not in use. can i use Garbage collector or Dispose and how i use this functionality ?
View 3 Replies
Jun 29, 2011
is there any real advantage to run a GC.collect after that our application has used a large quantity of memory or it is just a psychological factor?
View 17 Replies
Jun 6, 2010
i am a beginner in vb.net programming...started a project in it.Below is the breif project description.The application is to ensure the integrity of the files.Following are the majors things that i have to implement
1. To browse the files from the disk on runtime.initially i am just taking the database files so it's basically to connect with the MS access db files.
2.To apply the different hash and encryption algos on the file.
3.To store the results on the hard disk back.
4. To calulate the performance of each algo using some performance matrix.(TIME,MEMORY USAGE etc)
Now i am having problem in two things.First in runtime connectivity with MS access batabase..and secondly and the main problem is that i could'nt find any appropriate builtin function to calulate the processing TIME and the MEMORY usage.
View 3 Replies
Aug 30, 2009
I've been having complaints about my applications that they use to much memory.Is there a way to make them use less?
View 11 Replies
Nov 22, 2011
Having a problem with the amount of memory being used going up and up, and expanding until there is no memory left. I'm using the GHeat.Net plugin to build images. Here is the full code:
Dim pm As New gheat.PointManager()
Dim g As Graphics
Dim startZoom As Integer = 2
[code].....
View 1 Replies
Jul 31, 2011
You can easily get the memory usage of the current process using workingset64 However I could not find any event like OnMemUsageChanged so I can display a little mem usage meter that displays live/real time the mem usage value. Updating in a timer every second can be done but looks inefficient. Is there anyway I can get an event or callback every time the mem usage changes ?
View 1 Replies
Jul 1, 2009
i have two forms : Form1 and Form2..when i start application form 1 opens up, the memory usage is 10MB then i open form 2 and close form 1, the memory usage is 25MB.Again i close form2 and open form1, then the memory usage is 30MB.Why is this so that form 1 has different memory usage at different times...?
View 6 Replies
Apr 28, 2010
so im about half way through with rebuilding my fav project in vs2008 (old code was in vb6) and today was a great milestone for me as i got to test out all its limbs (whats missing is still the brain). Most of the code is completely new, even tho it has roughly the same structure .net framework has replaced the majority of api calls and everything has been reoptimized for performance.Now when i ran the complete systems check i was pleased to find that everything functioned without fail and the entire thing took only third of the time then the equivalent on vb6. What was shocking however was the memory usage when i popped open task manager i saw it hogging up to 4gb of ram and then dropped like a stone to 100k, again up to 4gb and down to 100k like a themepark ride the vb6 version never went above 46k so this is odd for me. While it doesent cause any direct problems on this comp, im afraid it might hurt the performance on the end system im going to run it on.
View 6 Replies
Jan 16, 2012
Is there any way I can get the memory usage for all processes currently running on a machine in vb.net?
View 1 Replies
Jun 7, 2012
I'm programming a windows services that is in charge of generate reports based to users request.for each user request I create a thread with next code:
hiloSolicitud = New Thread(AddressOf GenerarReporte)
hiloSolicitud.Start()
wherein GenerarReporte is a method that generate a report. I used threads because there are many users request.My problem is that when windows services has many users request the memory usage is to up 2 GB.that's the rest of memory possible, without count the memory for Operating System.In this case the windows services doesn't process any more request or reports because haven't more memory to work.so that when there are requests for large memory usage are processed but also allow the service of process windows of less use.I Want to limit memory usage for each thread.
View 7 Replies
Sep 15, 2010
Is there a way to make an application show it's own memory usage?
View 9 Replies
Feb 12, 2012
I have a small-scale WPF application using VB.net as the code behind and I want to add certain features, but i'm concerned about performance.
1) My app interacts with a third party database to display "realtime" data to the user. My proposed method is to create a background worker to query a database every 30 seconds and display the data. I query about 2,000 records all long integer type, store them in a dataset, and then use LINQ to create subsets of observable collections which the WPF controls are bound to.
Is this too intensive? how much memory am i using for 2,000 records of long int? Is the background worker querying every 30 seconds too taxing? will it crash eventually? Will it interfere with the users other daily work (excel, email, etc)?
2) If an application is constantly reading/writing from text files can that somehow be a detriment to the user if they are doing day to day work? I want the app to read/write text files, but I don't want it to somehow interfere with something else the person is doing since this app will be more of a "run in the background check it when I need to" app.
3) Is there a way to quantify how taxing a certain block of code, variable storage, or data storage will be to the end user? What is acceptable?
4) I have several list(of t) that I use as "global" lists where I can hit them from any window in my application to display data. Is there a way to quantify how much memory these lists take up? The lists range from lists of integers to lists of variables with dozens of properties. Can I somehow quantify how taxing this is on the app or the end user?
View 2 Replies
Apr 28, 2009
Bitmaps and Pictureboxes, memory usage off the chart!???????????
View 7 Replies
May 29, 2011
I have started with a small project in VB2008 Express which grew to a complex application. I have deployed the application recently discovering it is rather small, and the major issue is that code-generated controls (checkboxes, comboboxes, textboxes) are not displayed as during development. I have declared the code-generated controls in the declaration region, and there are about 250 controls. According to user selection some of the controls are added to a container panel. Now, I am concern that because I declare those as public (static?) variables, it uses much memory and causes the problem in the compiled application. Is that correct that static declared and code-generated controls uses much memory? How to avoid it ? I need the controls as public variables. Is it better to add all 250 controls on the form in designer mode, and use the property Visible (control.visible=True)?
View 1 Replies
Sep 23, 2010
I am trying to setup performance counters for CPU Usage and Memory Used.I would like a progress bar and a label to display the percentage.I have the below code and although it seems to be half working, there is something just not right.. The memory one seems to be working fine although the CPU one is acting strange.
[Code]...
View 2 Replies
Sep 1, 2010
I saw some 'offsets' such as: 0x006E71A0and some that were like, Game.dll+8E336CI'd more so think the 0x006E71A0 and the Game.dll+8E336C are among the same format, so i'd like to use that.I have also read somewhere(this could be wrong) that the memory addresses formats are different between VB, C#, and C++.
View 2 Replies
Sep 24, 2010
I have a fairly complex application which makes use of an MS Access database. My application generates some 14million entries and inserts them after each generation, into the database. The app works perfectly without any bugs(that I am aware of) apart from one problem. If I run the app and let it run the full 14million odd data entries, the app crashes some way through and gives an Out of Memory exception.
I then loaded up TaskManager and notice that the memory usage increases by about 8-15Kb per second. I have done some reading and have tried using Dispose() to get rid of any objects finished with, I have tried building in release mode and the problem remains. I'm not even really sure if it is a memory leak or something else. I am using VS2010 and my application is running in .net 4.0.
View 1 Replies
Apr 18, 2012
I have an ArrayList that stores 100,000+ numbers inside of it. Each number is 10 digits in length or smaller. The program itself has data input into it, of which it loops through the user input to see if any of their numbers are already in the array using if ArrayList.Contains(userinput).
It would appear that when having an ArrayList of this size a LOT of memory is being used. Would there be a faster way to run this, E.g. Database or If TextFile.Contains(Line)?
View 3 Replies
Jan 27, 2010
Does a the size of the class affect the memory usage of the application? is it better to break big classes into smaller classes or just group them up into one big class.
View 2 Replies