anchor.diff:          let dirtyResoruces = 
               lock l (fun () ->
                   
  +                let dirtySet = set |> Seq.toArray
  +                set.Clear()
   
  -                let dirty = set |> Seq.toArray
  +                for d in dirtySet do
  +                    let cb = dirty d
  +                    callbacks.[d] <- cb
  +                    d.MarkingCallbacks.Add cb |> ignore
   
  -                set.Clear()
  -                dirty
  +                dirtySet
               )
           sw.Restart()
           let mutable count = 0
  
positive.code:     member x.Update() =
          let dirtySet = 
              lock l (fun () ->
                  let dirty = set |> Seq.toArray
                  set.Clear()
                  dirty
              )
  
          sw.Restart()
  
negative.code: 
                      d.UpdateCPU()
                      d.UpdateGPU()
              )
          sw.Stop()
          count,counts,sw.Elapsed
  