1. 22 5月, 2019 26 次提交
  2. 21 5月, 2019 8 次提交
  3. 20 5月, 2019 1 次提交
  4. 19 5月, 2019 1 次提交
  5. 18 5月, 2019 4 次提交
    • H
      this addresses issue where we repeatedly trying to create different c… (#35787) · b4bcd75f
      Heejae Chang 提交于
      * this addresses issue where we repeatedly trying to create different compilations in OOP causing a lot of allocations.
      
      issue was OOP solution crawler processing documents from different proejcts rather than per same project. basically void the benefit the solution crawler (processing same project one at a time so that all share same compilation/symbols and etc)
      
      root cause was due to documents got removed and then readded to remote workspace solution. and that was happening because remote workspace could moved backward.
      
      fix is making sure that workspace can't never move backward.
      
      ...
      
      some background.
      
      originally, RemoteWorkspace was added to OOP as pure cache. so that, when someone need a soluton matching one from VS, OOP doesn't need to recreate the solution from scratch.
      
      so, it always has set RemoteWorkspace to last requested solution from VS (a snapshot of VSWorkspace.CurrentSolution)
      
      what that means is if there are multiple requestsion from VS with snapshot1, snapshot2, snapshot1, snapshot3
      
      remoteWorkspace.CurrentSolution could move from snapshot1 -> snapshot2 -> snapshot1 -> snapshot3
      
      it was all fine as pure cache since as a cache, there is no such concept of moving forward or backwawrd. it is just a snapshot. and RemoteWorkspace is just something we need to have due to solution having backpointer to workspace and I can do incremental update to be more efficient. but functionally, workspace wasn't required.
      
      this got more complicated when solution crawler is added to OOP to support "Find all reference" and "navigate to"
      
      strictly, solution crawler doesn't care whether solution going backward. as long as we can diff 2 solutions correctly, going backward is just another change in solution and solution cralwer handle those correctly.
      
      problem is perf. now it causes unnecessary work. causing a lot of unnecessary allocation.
      
      what make it worse is that, we mark document removed as high priority to process them faster. and we let solution crawler process them in any order rather than per project since removed document call back can't access compilaton. but since we allowed remote workspace solutoin to go back and forth, we end up mark a lot of document, high priority and start to process them not in group causing even more allocations.
      
      now, we only allow remote workspace to move forward. never backward.
      
      * updated comment
      b4bcd75f
    • D
      Merge pull request #35750 from dotnet/merges/release/dev16.2-preview1-to-master · 7b20dc52
      dotnet-automerge-bot 提交于
      Merge release/dev16.2-preview1 to master
      7b20dc52
    • J
      Remove duplicate NullableContextOptions property · 39901c6a
      Julien Couvreur 提交于
      39901c6a
    • J
      Merge remote-tracking branch 'dotnet/release/dev16.2-preview1' into... · dc5ea04c
      Julien Couvreur 提交于
      Merge remote-tracking branch 'dotnet/release/dev16.2-preview1' into merges/release/dev16.2-preview1-to-master
      dc5ea04c