Performance Watch

Over the last few months, we have written several articles about our efforts to improve the performance of Escape Online 5. Bob Towery tells it like it is in this series, describing what we have done and what we are planning to do in the near future. Ramona Marshall gives you updates from a business perspective. Stephanie Fury provides the detail from the QA side.

Phase I - Performance Enhancements - Monthly Releases

This is the first news item in a series of articles discussing how we are improving performance of Escape Online 5. This article discusses Phase I - how we are incrementally improving performance on a monthly basis.

Phase II - Performance Enhancements - SQL 2005

We are making an adjustment to our four phase approach to performance enhancements. We are inserting another phase, and making this phase II. From the info we gathered recently by sending Susan Dickinson (Crystal Report Developer) and Jennifer Kenney (Business Analyst) to SQL Training, and the information we are getting from Ventura COE's DBA, we find that having customers on SQL 2000 limits us from using new functionality that would result in performance increases.

Phase III - Performance Enhancements - Business Process Evaluation

Today's news post discusses Phase III of our Performance Enhancement effort: Business Process Evaluation. There are two things going on here:

  1. Making sure users are using the system as intended - matching up their workflows with Escape Online 5..
  2. Creating new functionality based on our architecture and users workflows.

Phase IV - Performance Enhancements - Instrumenting the User Experience

Today's news post discusses Phase IV of our Performance Enhancement effort: Instrumenting the User Experience. Data. That's what people need in order to solve problems. If the car is having a problem, you need to be able to tell a mechanic what is happening. At a given speed, what does the noise sound like? Only when the car is cold, hot, going uphill, downhill, in a turn? When accelerating, braking? Well, at least that is what we used to do, right? Now the mechanic hooks up your car to his computer and it probably tells the mechanic more than we can. And that is the situation we find ourselves in.

Phase V - Performance Enhancements - .Net Migration to 2.x & 3.x

This update discusses the final phase we are working on for performance enhancements - our .Net migration. As background information, our software is developed on a platform known as Microsoft .Net (and we use the C# language for those that are interested). As is with all things Microsoft, they make changes and improvements and release new versions of this platform. You might also be familiar with the concept that many Microsoft products don't "come of age" until version 3.

Performance Enhancements Update

In previous news item about Instrumenting the User Experience, I alluded to a pretty big enhancement that is the result of this effort. After we got the statistics working, the time to save many forms jumped out as unusual. We recalled that last summer, around August, our Software Architect Bill Marion had been able to get all of our forms closing in about 2 seconds, whether or not there was updated data to be saved.

Performance Enhancements - Reports

Performance Enhancements Update - Reporting / Database Performance Tuning

The cause of many "slowdowns" experienced at our larger implementations has been determined - it is database contention. The way we were accessing data for a variety of purposes, especially reports, was "locking" data for long periods of time and making other processes wait. Users just know they aren't getting the screens they requested, they do not know why.

So we have employed a series of SQL techniques to both speed up reporting and either significantly reduce, or eliminate, the period of time where any data are locked. One of the main things we are doing is moving away from large "views" that gather all the data into huge data structures. We are finding it is more efficient to do several smaller operations, often involving "temp tables."

Performance Enhancements - Reports - Update

As Escape's QA Coordinator, all new and enhanced software passes through my office. I either test myself, or enlist help from others here. Occasionally, a particular enhancement will really knock my socks off. And so it is for the latest version of our report Fiscal04. Susan Dickinson from our report team is using what she learned at her recent SQL Query/Tuning class as well as suggestions from Ventura COE's SQL guru.

Performance Enhancements - Reports - Ledger04

I just had to follow up on my June 30th news post, because I have more exciting performance news about another report: the JE Fund/Object Summary (Ledger04).

Just like I described earlier, the stored procedures for the report were streamlined (this time by Chad) and I compared the "old" report to the "new" report. Here are the results:

This improvement was AMAZING! From over an hour to less than two minutes. As software and reports are developed and tested, I will continue to provide updates on our performance enhancements.

Performance Enhancements - Reports - Update

Our development team is accomplishing much more than just making the reports available to the user more quickly. They are also no longer locking any data, thus causing contention/performance problems for other reports or processes. They are also being much more friendly to SQL Server so it can attend to other tasks.

More Performance Enhancement Updates

Performance Enhancements: Update

This week we focused on several areas for performance improvements. Before I discuss the numbers, a caveat. Performance testing can be pretty imprecise. For any one test, you have a given client, and a given server. The performance and load on each of them matters a great deal. I have my Dell XPS laptop, running Vista, configured to be both a client and server. I like to test this way because I can be assured that my test parameters aren't varying much. I know that my performance numbers are going to be slower than a client running against a "real server" or group of servers. I also test against a variety of servers. What we generally do is run a test several times with existing software, average that number, then install the new performance enhancing software, and re-test.

Phase V - Performance Enhancements - .Net Migration Milestones

After our news post of June 9, several people asked to see the details of our plan. So this post lays out the milestones involved in our .Net migration path.

Phase V - Performance Enhancements - Update

I'm pleased to announce that last week we hit an important milestone: We logged in and successfully ran our first activity as a .Net 2.0 application!

Memory Management

A number of us here at Escape subscribe to news feeds from various internet websites that discuss Windows, .Net, and SQL development. Today I read an article that was about Internet Explorer and Firefox browsers. I checked it out. Thisdeveloper's article is about testing all the current browsers for memory usage. Firefox handily beats the competition. Which is pretty interesting, you would think that Microsoft ought to be able to build a better browser than something from a bunch of individual programmers eh?