• 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

    #11
    In addition to the try/finally logic, you can also use the Using reserved word on any of your objects that implement IDisposible. They will automatically be disposed off when the code exits the using block either through the normal route or when an error is thrown.
    Originally posted by cailin maith
    Hang on - there is actually a place called Cheddar??

    Comment


      #12
      Forgot to mention; An object that is hanging on to an external resource and being referenced in multiple places sounds like a candidate for refactoring to me. Perhaps the object should be a singleton, or if that is not relevant then perhaps it should open and close the resource each time a read or a write is done.
      Originally posted by cailin maith
      Hang on - there is actually a place called Cheddar??

      Comment


        #13
        Originally posted by FSM with Cheddar View Post
        Forgot to mention; An object that is hanging on to an external resource and being referenced in multiple places sounds like a candidate for refactoring to me. Perhaps the object should be a singleton, or if that is not relevant then perhaps it should open and close the resource each time a read or a write is done.
        Don't worry, I mentioned it
        Where are we going? And what’s with this hand basket?

        Comment


          #14
          oops must pay more attention
          Originally posted by cailin maith
          Hang on - there is actually a place called Cheddar??

          Comment


            #15
            Originally posted by FSM with Cheddar View Post
            In addition to the try/finally logic, you can also use the Using reserved word on any of your objects that implement IDisposible. They will automatically be disposed off when the code exits the using block either through the normal route or when an error is thrown.
            Aha! Well that's exactly what I was after, and also kind of proves that I'm right. Was it even in the original version? It seems like a bit of an after thought, and obviously abusing an existing keyword is not exactly a clean solution (although after seeing C++/CLI, nothing scares me anymore).

            An object that is hanging on to an external resource and being referenced in multiple places sounds like a candidate for refactoring to me. Perhaps the object should be a singleton, or if that is not relevant then perhaps it should open and close the resource each time a read or a write is done.
            Exactly my point. It's not hanging onto an external resource if the lifetime of the object is very short. But thanks to GC, the lifetime could be until the end of the program.
            Will work inside IR35. Or for food.

            Comment


              #16
              Not sure how this works in C# but in Java none of the points you outline are a problem at all, providing you follow some sensible coding practices.

              As for any general argument about garbage collection versus manual allocation/deallocation, that's a no brainer.

              Comment


                #17
                Originally posted by jkoder View Post
                Not sure how this works in C# but in Java none of the points you outline are a problem at all, providing you follow some sensible coding practices.
                None are a problem in assembler either, but that's not really the point.
                Will work inside IR35. Or for food.

                Comment


                  #18
                  Originally posted by VectraMan View Post
                  Aha! Well that's exactly what I was after, and also kind of proves that I'm right. Was it even in the original version? It seems like a bit of an after thought, and obviously abusing an existing keyword is not exactly a clean solution (although after seeing C++/CLI, nothing scares me anymore).



                  Exactly my point. It's not hanging onto an external resource if the lifetime of the object is very short. But thanks to GC, the lifetime could be until the end of the program.
                  Not really read this thread in depth so apologies if this has been covered but if you have a managed object that holds an unmanaged resource that you want to be got rid of, it is up to you to implement IDisposible (correctly!) and possibly offer an Open and Close method if the resource can be-reused (example being a database connection).

                  Then any coder will know that to use any class that implements IDisposible, they simply wrap the lifetime of the object in a using statement.

                  http://stackoverflow.com/questions/1...alization-in-c

                  http://www.marcclifton.com/tabid/79/Default.aspx

                  Simple and it works. What's the problem?

                  Comment


                    #19
                    Originally posted by VectraMan View Post
                    Aha! Well that's exactly what I was after, and also kind of proves that I'm right. Was it even in the original version? It seems like a bit of an after thought, and obviously abusing an existing keyword is not exactly a clean solution (although after seeing C++/CLI, nothing scares me anymore).
                    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.
                    Where are we going? And what’s with this hand basket?

                    Comment


                      #20
                      I was expecting this thread would be about wheelie bins or fortnightly collections or some other interesting rubbish. Only to find that it's about programming

                      Comment

                      Working...
                      X