VersaTrans completely rewrote their flagship
application during their latest upgrade. During development they noticed performance
issues and decided they needed a good profiling tool, so they turned to
AQtime for help.
Redesigning a Flagship Application
"We completely rewrote our company’s flagship application, VersaTrans RP, when we
went from version 8 to version 9. We went from using file based database with many
data elements in flat files to a client server application designed with Microsoft
SQL Server as the back end datastore," said Chris Miller, from VersaTrans.
"While moving from a design geared for flat file storage to client/server, many
of the processes that we used to manipulate data had to be rewritten from scratch.
Mid-way through the development process, we started noticing some performance issues
that would make the new version difficult to use."
Slow Batch Assignments
Chris said that they had performance issues in one particular operation: their batch
assignment feature. "To grossly oversimplify what our batch assignment does, it
allows the user to take a selection of students and generate all of the transportation
requests (which bus stop, which school) and assign each request to a school bus
route. Under the hood, a lot of calculations get done on both the client side and
on the database side. For a mid sized school district, a batch assignment of 15,000
students was taking about 10 to 12 hours to run on a Pentium 4 box. With the previous
version, the equivalent action would take abut an hour to run. The 10 fold increase
in execution time made the new version a non-starter. We had to fix this."
VersaTrans Needs a Profiler Tool
"We knew we had to refactor some code; but the question was "Where do we start?".
We needed to measure how long the various functions used by the batch assignment
took to execute and how often they were called. That's when we knew we needed a
profiler tool and we needed a good one," said Chris.
Searching for the Right Tool
Chris said that once they determined that they needed a profiler tool, they checked
Borland's newsgroups. "I read a lot of good things about AQtime from AutomatedQA.
I downloaded the trial version and I was blown away with the scope and breadth of
the features. This was the profiler tool that we had to get."
Working with AQtime
"We work with the AQtime in two modes. First, we use it on new or updated code to
make sure that we have not introduced any performance bottlenecks. This is fairly
straight forward, we run the code and examine the execution times and percentages,"
said Chris.
"We also use it when we have a module or feature that needs to run more efficiently.
We do an initial pass on the code to find bottlenecks and with that information
we decide if we need to optimize the existing code or if we need to rethink how
we are doing things."
"In either case, we use AQtime to drill down into specific functions that we are
using to see where we need to concentrate our efforts. It’s seeing where you need
to optimize and what you don’t need to touch. AQtime is invaluable for this type
of work!"
AQtime Produces Results
Chris said that AQtime allows them to determine where they need to address performance
issues. "We are able to prioritize our optimization efforts, based on the analysis
provided by AQtime. For example, we were able to take the batch assignment process
that took 10+ hours to run and get it under 15 minutes. Using the results from AQtime
was significant in getting that optimization done."
Saving Time and Implementing More Features
"AQtime has saved us too many hours to count. It takes the guesswork out of optimization.
We can measure performance changes as we make them. The time that we save using
AQtime is spent implementing more features," said Chris.
Chris said that the flexibility that AQtime provides is a great time saver. "The
flexibility in how you can profile your code was a great time saver. We didn’t have
to profile every line of code; we could do it by the module or the function. We
only needed to see what we needed to see."
VersaTrans on AQtime
"If you are doing any coding where performance time is an issue, then AQtime is
your best friend. The ability to profile execution time down to individual lines
of code is invaluable. It allows you to tell which modules or functions need to
be optimized and which ones don’t," said Chris.
About VersaTrans RP
VersaTrans RP
is a school bus planning and routing solution designed to help school districts
manage their bus scheduling needs effectively. The current version builds on 20
years of providing scheduling solutions for the K-12 market.
About VersaTrans Solutions
For school district superintendents, administrators, teachers, parents and students,
VersaTrans Solutions
is dedicated to making a difference in your community.
From school bus routing and field trip management software to reliable customer
service and expert transportation consulting, hundreds of school districts throughout
North America take advantage of our innovative technology solutions to:
Make better, safer and more cost effective school bus routing decisions Streamline school district boundary planning and mapping Save money on fleet maintenance and transportation operations Positively impact the bottom line through operational efficiencies
About AQtime
AQtime is a performance profiler and memory debugger
engineered to give developers unparalleled insight into all aspects of the performance
of their applications. AQtime provides a single solution for detecting performance
bottlenecks and memory leaks within managed, unmanaged and mixed-code applications.
AQtime supports Microsoft Visual Studio, .NET, ASP.NET, C++, VB, Borland Delphi,
Borland C++, and more.
Learn more about AQtime and download a free
trial.
Trademark Information
All company names and/or products referenced herein are either registered trademarks
or trademarks of their respective trademark holders.