Home » Community » Coffee corner » C++ FQA
Re: C++ FQA [message #12708 is a reply to message #12677] |
Tue, 13 November 2007 17:30 |
exolon
Messages: 62 Registered: July 2006 Location: 53'21N 6'18W
|
Member |
|
|
mdelfede wrote on Mon, 12 November 2007 22:33 | Well, also being absolutely not an expert of GC algorithms, I always think that to allocate a lot of memory just because there is enough of it it's not a great practice.
First thing, you must look to what does OS in respect of free memory.... If your OS tells you that you've got 1 GB free ram, even when it's already swapping out another GB on disk, what this behaviour does is slowing down your system.
IMHO a truly efficient GC should be hardware implemented, or at least have a strong hardware support. Doing it software you'll face everytimes with some sort of problem, as latency, memory inefficiency or both.
And it should also collect freed memory asap.
|
Well, these last two statements don't seem logical together. If you don't want latency, why collect freed memory ASAP, unless you're on a very constrained (hard real-time embedded board...?) platform always operating close to the limit of available memory or starting to thrash the swap? This implies doing GC runs _all_ the time.
mdelfede wrote on Mon, 12 November 2007 22:33 | No doubt that manual memory allocation is more efficient than GC, even if it can be a bot slower on the short time.
And a good framework can help to keep things simple.
Id rather extend C++ (or make some more modern language, without GC) to include some helpful features, than switch to less efficient languages.
|
I think you should really look at some proper comparisons of real efficiency impacts of using GC, rather than automatically assuming that it kills your program's performance.
Also, you shouldn't just assume for sure that manual memory allocation must be more efficient than GC.
This FAQ is worth a read, with an open mind, rather than being a hardened C++ "oldskool all the (hard and error-prone) way" purist.
http://www.iecc.com/gclist/GC-faq.html | Folk myths
* GC is necessarily slower than manual memory management.
* GC will necessarily make my program pause.
* Manual memory management won't cause pauses.
* GC is incompatible with C and C++.
Folk truths
* Most allocated objects are dynamically referenced by a very small number of pointers. The most important small number is ONE.
* Most allocated objects have short lifetimes.
* Allocation patterns (size distributions, lifetime distributions) are bursty, not uniform.
* VM behavior matters.
* Cache behavior matters.
* "Optimal" strategies can fail miserably.
|
|
|
|
|
|
C++ FQA
By: unodgs on Tue, 06 November 2007 23:27
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: unodgs on Wed, 07 November 2007 10:40
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: unodgs on Wed, 07 November 2007 13:15
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Thu, 08 November 2007 05:34
|
|
|
Re: C++ FQA
By: Zardos on Thu, 08 November 2007 13:33
|
|
|
Re: C++ FQA
By: mirek on Thu, 08 November 2007 19:25
|
|
|
Re: C++ FQA
By: mdelfede on Thu, 08 November 2007 23:39
|
|
|
Re: C++ FQA
By: mirek on Fri, 09 November 2007 08:51
|
|
|
Re: C++ FQA
By: mdelfede on Fri, 09 November 2007 13:41
|
|
|
Re: C++ FQA
By: mirek on Fri, 09 November 2007 14:48
|
|
|
Re: C++ FQA
By: mdelfede on Fri, 09 November 2007 15:52
|
|
|
Re: C++ FQA
By: waxblood on Fri, 09 November 2007 17:07
|
|
|
Re: C++ FQA
By: mdelfede on Fri, 09 November 2007 19:51
|
|
|
Re: C++ FQA
By: mirek on Sat, 10 November 2007 15:14
|
|
|
Re: C++ FQA
By: mdelfede on Sat, 10 November 2007 17:06
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Sat, 10 November 2007 17:54
|
|
|
Re: C++ FQA
By: mdelfede on Sat, 10 November 2007 23:57
|
|
|
Re: C++ FQA
By: mirek on Sun, 11 November 2007 09:54
|
|
|
Re: C++ FQA
By: mdelfede on Sun, 11 November 2007 11:25
|
|
|
Re: C++ FQA
By: Zardos on Tue, 13 November 2007 01:56
|
|
|
Re: C++ FQA
By: mirek on Tue, 13 November 2007 09:25
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Tue, 13 November 2007 10:52
|
|
|
Re: C++ FQA
By: mirek on Thu, 22 November 2007 05:43
|
|
|
Re: C++ FQA
By: mdelfede on Sun, 11 November 2007 11:36
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mdelfede on Sun, 11 November 2007 18:52
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Mon, 12 November 2007 09:46
|
|
|
Re: C++ FQA
By: mdelfede on Mon, 12 November 2007 10:19
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mdelfede on Mon, 12 November 2007 11:43
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mdelfede on Mon, 12 November 2007 16:47
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Mon, 12 November 2007 20:15
|
|
|
Re: C++ FQA
By: mirek on Mon, 12 November 2007 20:21
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Mon, 12 November 2007 22:43
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Mon, 12 November 2007 23:34
|
|
|
Re: C++ FQA
By: mdelfede on Mon, 12 November 2007 23:33
|
|
|
Re: C++ FQA
By: exolon on Tue, 13 November 2007 17:30
|
|
|
Re: C++ FQA
By: mdelfede on Tue, 13 November 2007 18:24
|
|
|
Re: C++ FQA
By: exolon on Tue, 13 November 2007 18:58
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mirek on Fri, 16 November 2007 11:59
|
|
|
Re: C++ FQA
By: waxblood on Fri, 16 November 2007 16:24
|
|
|
Re: C++ FQA
By: mdelfede on Fri, 16 November 2007 16:37
|
|
|
Re: C++ FQA
By: mirek on Sat, 17 November 2007 10:04
|
|
|
Re: C++ FQA
By: mirek on Sat, 10 November 2007 15:22
|
|
|
Re: C++ FQA
By: mdelfede on Sat, 10 November 2007 16:58
|
|
|
Re: C++ FQA
By: mirek on Thu, 08 November 2007 05:25
|
|
|
Re: C++ FQA
By: mirek on Wed, 07 November 2007 15:14
|
|
|
Re: C++ FQA
By: mdelfede on Wed, 07 November 2007 15:39
|
|
|
Re: C++ FQA
By: exolon on Mon, 12 November 2007 13:09
|
|
|
Re: C++ FQA
By: mr_ped on Wed, 07 November 2007 17:05
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
By: mr_ped on Sat, 10 November 2007 22:26
|
|
|
Re: C++ FQA
By: mirek on Sat, 10 November 2007 22:35
|
|
|
Re: C++ FQA
|
|
|
Re: C++ FQA
|
Goto Forum:
Current Time: Tue May 07 16:09:03 CEST 2024
Total time taken to generate the page: 0.03008 seconds
|