Hi Sylvain_Lafontaine ( and John_Bailo ),
John_Bailo wrote: << A Zombie programmer called Jeff Relf
just discovered a more efficient way of clearing memory
-- does GC do this ? >>
John is referring to Simon_Cooke's suggestion
that my X.CPP create a second heap so that it could be Instantly destroyed
instead of wasting 7 seconds of CPU time when a certain button was pressed.
The 7 seconds was required to free almost a million pointers,
it was shunted off onto a thread, of course,
....a thread which no longer needs to be called.
X.CPP is my Hyper_Custom e-mail client and newsreader ( .13 megs ):
http://www.Cotse.NET/users/jeffrelf/X.EXE
The settings are here:
http://www.Cotse.NET/users/jeffrelf/X.TXT
X's VBA macros for Visual_Studio_2003:
http://www.Cotse.NET/users/jeffrelf/X.VB
http://www.Cotse.NET/users/jeffrelf/X.CPP
http://www.Cotse.NET/users/jeffrelf/X.VCPROJ
Thanks to Simon_Cooke's suggestion X now links with single_threaded libaries,
i.e. it now uses the /ML switch ( MS_CPP_7_1, Visual_Studio_Net_2003_Pro ).
Although I would Never dream of using anything else, myself,
X is probably not appropriate for 99.999 percent of Useneters.
Sylvain_Lafontaine wrote: << The following two parts article by Jeff Richter
is a good introduction to the GC of .NET:
http://msdn.microsoft.com/msdnmag/issues/1100/GCI/default.aspx >>
Very interesting, but I see some serious problems with the above:
1. Memory doesn't get freed until the heap is full,
that means more Disk_Swapping under low memory conditions.
That alone disqualifies C# for serious apps, e.g. editing large files.
2. It's Fricken_Complex !
There's a large learning curve to understanding it all.
3. I simply revel in the simplicity and flexibility of low_level coding
e.g. #define, realloc(), memmove(), sprintf(), etc.
Basically, I see Java and C# as mutations,
sure, they work for some people... but many others will never want it.
Although C/C++'s #define is as dangerous as it is powerful,
it allows me to create My_Own mutations,
....Hyper_Custom/Lean/Fast solutions such as:
#define LOOP while ( 1 )
#define Loop( N ) int J = - 1, LLL = N ; while ( ++ J < LLL )
#define LoopTo( StopCond ) \
while ( Ch && ( Ch = ( uchar ) * ++ P ) \
&& ! ( Ch2 = ( uchar ) P [ 1 ], StopCond ) )
By the way, LoopTo() is a recent creation of mine,
and it introduced a wild bug into X.CPP ( which I just now fixed ).
Now playing, Sole's Slow_Cold_Drops ( Nerd Rap... Yeeea-a-a ! ! ! )
http://www.Cotse.NET/users/jeffrelf/Slow_Cold_Drops.MP3
( 5.7 megs, 192 kbps )
http://www.Cotse.NET/users/jeffrelf/Teepee_on_a_Highway_Blues.MP3