December 19, 200421 yr for users of trackIR, it seems that the process has a bad memory leak. After leaving the driver running and on for a day the process size was up to 70mb. When I killed and restarted it, it was 10mb.sigh. haven't programmers of these things heard of "purify"?
December 19, 200421 yr In which version of software you discovered this?Maybe you should report this error on Natural Point support forum...http://forums.naturalpoint.com/cgi-bin/ultimatebb.cgi
December 19, 200421 yr Ah the new beta driver. Yeah I think they will be glad to hear though I am quite sure they know it already :)
December 19, 200421 yr I haven't noticed- doesn't sound like a show stopper though, especially if you have more than 512 megs. I've used it for 2+ hours straight with no problems. I'm sure they'll be glad to know however. I can live with small memory leaks, but I won't use FS again without the Vector Expansion.
December 20, 200421 yr It's when a program does not correctly do garbage collection. The net result is that a program will use more and more memory until the computer either comes to a stand still or crashes. In a nutshell- If you are a programmer, and you need to load a texture- you first figure out how much memory you need- then you ask the OS for a place (memory address) to store your picture. This is called allocation- the OS then hands you an address of where you can put your picture in memory, and makes sure nobody else will use it- it "reserves" it only for you. When you are finished with your picture, you need to tell the OS that you are done- you "free up" the memory, so it's no longer considered used. Essentially the same thing happens with objects, displays, sounds, and other internal programming things- each requires some memory use. Well, if you forget to "free up" the memory, by not destroying the object when you are done with it, then it will remain used. Then, if you keep requesting MORE memory- you see where this is going. The "leak" is essentially- "we screwed up", but it could also be a bug in a system driver or device that is out of their control.Naturally, some memory leaks are worse than others. If a program requests 2 gigs of memory in 2 minutes- that would be a severe memory leak.If this leak is 70 or 80 megabytes in 24 hours of use- it's not a show stopper- your computer can handle it just fine, but all memory leaks should be fixed.
December 20, 200421 yr Many thanks for the super-clear explanation.I'm confused, however. Don't the memory requirements of a program vary somewhat as the program executes? If the memory requirements of a program increase by 1%, for example does that mean there is a memory leak? What about 10% or 50%? Is there some criterion level? I don't get it.
December 20, 200421 yr sure memory requirements change if you use a browser for a long time it tends to get bigger as well. Perhaps it hangs onto memory that it gets from the OS and re-uses it later as necessary. But a leak is normally a slow steady increase in size when a program is sitting in a stable state. a simple program like trackIR should operate pretty much within its start size no matter how much you wave your head around, and should stay at that size forever, if necessary.
December 20, 200421 yr Again, thanks so much.Why should the trackir program operate pretty much within its start size no matter how much you wave your head around, and should stay at that size forever, if necessary?Still curious, and thanks.
December 20, 200421 yr There is another way to check these types of things out.Load up your program, and open your Windows Task Manager and view the processes tab.Click on the mem usage column to sort high to low.Then load your program, while viewing the tab, if you highlight it, it will track for you as it uses mem usage.Then minimize the program and maximize it, track the usage. Over time you will see what it is using, and what it goes back to to benchmark its use.Useful to someone perhaps, and then forward that to their support people.Thanks for giving people here the heads up on this.Regards,Joe CryptoSonar on Twitch & YouTube.
December 20, 200421 yr Thanks for the fascinating thread.Still not sure why an increase in the memory useage of a program means there is a memory leak, as it has been described in this thread. Please forgive, it's just not self-evident to me. Can anyone help clarify? It seems important.
December 20, 200421 yr It can be a complicated subject-Essentially, there is nothing wrong with a program increasing it's memory usage- at least up to a certain point! Super high-end graphics programs like Photoshop, 3D Studio Max, etc. will eat gigabytes and gigabytes of memory. If you are not careful you will slow your computer to a crawl!The difference is, when you do something that should reduce the amount of memory- like close the 65 gigabyte movie of britney spears you were editing, the program will free up the memory.So- TrackIR may use memory for different things- profiles, etc- who knows. But when they should be freeing memory they aren't. The the memory will ALWAYS INCREASE, and NEVER DECREASE- until you kill it.
December 20, 200421 yr It is quite legitimate for a program to request more memory if it needs it and this is not considered a memory leak.However, it is unusual for a program to continually need more and more memory. Normally its memory needs change over time and there are times when it no longer needs some of the memory it requested earlier. When that happens it should release the memory that is no longer needed.When this happens a programme's memory use grows and shrinks over time. Also, when it requests more memory again, it will be allocated some of what was previously released. Because of this, although the program, might be constantly changing what it stores in memory, it tends to reach a fairly stable size and more or less maintains that size.A memory leak occurs when it does not release the memory it no longer needs. The result is that its memory requirements just keep on growing. If you leave it long enough, it will eventually use all the memory in the system and either crash the system or the system will stop the programme to preserve the system. If this happens it is definitely an error that must be fixed.At other times whether something is a memory leak or not is determined by the designer's decisions. Consider FS9's use of terrain mesh, for example. Once a scene has past from view the mesh is no longer needed and can be released from memory to make way for more distant mesh that is coming into view. If the designer decides not to release that memory right away, though it is not necessarily a memory leak.If you are flying a 360 degree turn the same mesh will be needed again fairly quickly. In that case releasing it and reloading it is an unnecessary waste. The designer might decide to only release mesh from memory when it is outside a specified radius (say 100 kilometres) from the aircraft. The radius might even vary with altitude. This would be a concious design decision and would not be a memory leak. It probably would be though, if mesh memory were never released until the programme was stopped.When a programme closes, the operating system automatically reclaims all memory it was using.regards,Alan.
December 20, 200421 yr Fascinating and authoritative replies.Could it be that at the time FL390 looked at it, the program with the memory leak was at one of those 'up' periods and would have gone back down later? I'm still wondering why 70,000K memory useage is thought so much as to be considered a leak. Is it really alot? Honestly I have no idea. Can anyone continue to clarify? I'm learning alot here, thanks.
Create an account or sign in to comment