• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Garbage Collection rant

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    #21
    Originally posted by voodooflux View Post
    It's been there since day one - not sure why I didn't mention it earlier, it goes hand in hand with the dispose pattern.
    Okay I admit I was wrong, but to be fair it appears to be a well hidden feature of the language and almost everything I've read says "finalization is non-deterministic" and doesn't give the solution.
    Will work inside IR35. Or for food.

    Comment


      #22
      Originally posted by VectraMan View Post
      Okay I admit I was wrong, but to be fair it appears to be a well hidden feature of the language and almost everything I've read says "finalization is non-deterministic" and doesn't give the solution.
      Indeed - just reading the MSDN documentation on the dispose pattern and it doesn't seem to mention the using keyword.
      Where are we going? And what’s with this hand basket?

      Comment


        #23
        I can remember moving from C++ to java 10 years ago and being told by my colleagues that garbage collection was flawed and that java would never take off.

        IN the past one entry point from a method/function was a necessity but really it's just about readability now.

        All true contractors must hide at least one return in every function 10 levels of scope in. We are not paid to write perfect code but maintain bad code handed down to us by the previous freelancer. It your duty fellow contractors to write crap code.

        Comment


          #24
          Use "using" keyword for objects that have Dispose() methods - this would make that method get called once "using" block is done.

          I've learnt the hard way that any class I created that uses memory in a non-obvious way (native types) or in large quantity or keeps objects in objects needs to implement IDisposable interface.

          Dispose can and gets called automatically without using but you don't get guarantee and you should not count on one - if you deal with stuff like file handles you should always use try/finally block to close file in case of exception happening.

          Garbage collection in .NET is pretty good, however one should avoid allocating big chunks of memory and instead try to reuse them. If you use local objects it works okay, but having some complex stuff like file handle object stuffed into global Hashtable/ArrayList can lead to issues.

          I've programmed C/C++ in the past and have to say despite garbage collection in .NET not being perfect it still improves productivity big time, if coded well overheads are low too.

          Comment


            #25
            Originally posted by minestrone View Post
            I can remember moving from C++ to java 10 years ago and being told by my colleagues that garbage collection was flawed and that java would never take off.
            Java has never taken off, at least not to the extent that was suggested by all the hype at the time. It's only got anywhere because universites decided it was easier to teach than C++.

            We are not paid to write perfect code but maintain bad code handed down to us by the previous freelancer. It your duty fellow contractors to write crap code.
            As someone who often has to work on legacy MFC code, I can tell you how true that is.
            Will work inside IR35. Or for food.

            Comment

            Working...
            X