Wednesday, July 22, 2015

FMod - Row/Column Management Optimization

I was investigating the slowness with row/column management when I remembered that disabling the undo feature (by enabling High Speed Mode) non-negligibly increases the speed of those operations. Investigation of those tools (Row Adjuster and Column Adjuster) showed that they create a copy of the level to store in the LevelUndoAction when FastMode is not on.

That clone operation actually seemed fairly expensive, so I tried disabling it. The copy was necessary because all links that need adjustment have to be zeroed so that the updated links don't get overwritten when the normal level and nonlinkable infoplane values are copied. Disabling the zeroer resulted in links not getting updated at all.

It turns out that old links only needed to be zeroed because I did the standard copy and link update in the reverse order of what one would expect. After I swapped them so that link updates are done last, no zeroing and therefore no cloning had to be done. The old level was not modified and could be jammed into the LevelUndoAction. Speed improved!

Oh, and some things I noticed that are new in Visual Studio 2015:

  • The Start button (to launch the program) is on the opposite side of the Debug/Release and platform dropdowns than it was before. That is actually pretty inconvenient because I'm so used to the old positioning.
  • There's a new dropdown next to Start that lets me set the startup project (in a multi-project solution) by picking it from its list of non-library projects. I like that a lot.
  • The left margin highlight color for saved changes is a brighter green. I'm not sure if I like that.
  • There is a new Diagnostic Tools thing that appeared without asking me and made a bunch of neat graphs of Abiathar's resource consumption over time. It briefly got in the way, but was easy to dismiss and will be a nice tool when I need it.
  • There is a new dropdown to the left of the class and method/property/event dropdowns at the top of the code window. It seems to always contain a single entry: the project in which the file resides. That's kind of weird; perhaps it should have been a label. (I do like seeing at a glance what project the code file I'm looking at belongs to.)
  • Little balloons appear when Visual Studio can make little changes for me, like simplifying enum entry names by removing some namespaces. I'm not yet sure if this is useful enough to warrant the visual distraction.
  • There is a smiley face next to the notification alert icon that creates a menu containing feedback-related actions when I click on it. I think all these items used to be in the Help menu.
  • The icon for a form code file is a little different.

No comments:

Post a Comment