1. 05 Jan, 2017 1 commit
  2. 09 Apr, 2016 1 commit
  3. 08 Apr, 2016 3 commits
  4. 08 Feb, 2016 1 commit
  5. 06 Feb, 2016 1 commit
  6. 31 Jan, 2016 1 commit
  7. 23 Jan, 2016 6 commits
  8. 19 Jan, 2016 4 commits
  9. 18 Jan, 2016 2 commits
  10. 17 Jan, 2016 9 commits
  11. 13 Jan, 2016 2 commits
  12. 12 Jan, 2016 2 commits
  13. 11 Jan, 2016 1 commit
  14. 10 Jan, 2016 1 commit
  15. 09 Jan, 2016 1 commit
    • Shockfire's avatar
      Huge loading optimizations and refactoring · 515e3e9a
      Shockfire authored
      This refactors a large chunk of the TagCache/TagInstance code so that tag caches load significantly faster. On my PC (i5-4690k + SSD), this makes tags.dat load up to 8x faster according to the VS profiler.
      Most of the speedups come from reducing the number of I/O operations needed to load tags.dat. Previously, a lot of time was spent reading things like pointer targets and computing relative offsets. That information is really tightly coupled with the tag data - it doesn't make sense to be able to change one without the other (at least, not anymore now that we have better ways of editing tag data). So, I moved all that information into a TagData class, and made it only be read if you extract a tag (in which case you would definitely need the information anyway). When tags.dat is loaded now, only the bare tag headers need to be read. A nice bonus is that I was able to make TagInstance immutable from external modules and get rid of that confusing UpdateTag method.
      One unfortunate side-effect of this is that the "fixup" and "tagblock" commands had to be dropped. (Like I said earlier, it really doesn't make sense anymore to edit things like fixups directly when we have the serialization system.) I considered dropping "dep" as well, but it's still pretty useful considering that Assembly can't edit tag references properly. If the other two commands are really necessary for some people, I can consider adding them back in, but Camden's editing commands should make up for most of it and they're much easier to use.
      I also shaved ~20ms off of the stringID loader by precomputing string lengths, but it's not really too noticeable from what I've observed.
      Finally, this upgrades the project to use .NET 4.6, because I used some of the new features in it. Hopefully this isn't an issue.
  16. 04 Jan, 2016 2 commits
  17. 02 Jan, 2016 2 commits