TatukGIS
Founded in 2000, Poland-based TatukGIS is a geospatial technology company focused on developing professional-grade geographic information system (GIS) software development kits used by clients around the world to create applications that capture, manipulate, analyze, and present geographic data. The company licenses GIS SDK’s to clients operating in industries including energy and water utilities, telecommunications, transportation infrastructure, forestry, agriculture, environmental engineering, logistics, military, public safety, cadastral mapping, surveying, and municipality management.
Business Need
When building GIS software development kits, the internal software development team at TatukGIS primarily utilizes the Delphi development environment but also relies on Java and .NET. The software code for the development kits can be complex—an application library may include up to 12 million rows of code, and applications are sometimes as large as 60MB. When a bottleneck occurs, pinpointing the location and the cause can thus be a challenge.
“When developing a new app or adding a feature to an existing app, we need to discover bottlenecks and their causes as quickly as possible,” says Tomasz Kosinski, Vice President and Chief Developer for TatukGIS. “If we take too much time investigating, we won’t be able to keep the software development lifecycle on schedule, and we may not be able to deliver our apps on time to our clients.”
Discovering application bottlenecks is also critical for ensuring application performance since clients have high expectations for the way the TatukGIS kits should perform. It’s mandatory to identify bottlenecks and fix defects before applications go live.
“It’s all about creating software development kits that empower our clients’ software development teams to produce GIS software that works really well,” Kosinski emphasizes. “The better we are at identifying bottlenecks, the better our clients look to their end-user customers—and that’s a big win for all of us.”
Targeted Solution
In 2003, Kosinski began to search for a way to profile code so he and his team could quickly identify application bottlenecks. He also hoped to find a solution that could profile memory so his team could see how applications align to memory usage and prevent leakage. Another key factor was finding a tool that worked across the Delphi, Java and .NET development environments.
“We first conducted research online and identified a handful of potential tools,” Kosinski says. “After narrowing the field down to a few that we tested for ourselves, we chose AQtime Pro in 2003, and it has performed very well for us ever since. Nearly 15 years later, AQtime Pro remains an essential part of our software development lifecycle—we use it any time we build new software or add a major feature.”
As a software code performance and memory profiler, AQtime Pro helps developers track down memory profiling issues, CPU and other I/O bottlenecks. Development teams can also perform comprehensive code coverage analysis and perform fault simulation. One of the only profiling tools that’s available for the Delphi development environment, AQtime Pro also provides support for Java, .NET, C/C++, JScript, VBScript, Silverlight and other programming frameworks.
“For us, it’s key that AQtime Pro works for Delphi, Java and .NET,” Kosinski says. “Instead of having to learn how to use three different profiling tools, we can rely on just one.”
The TatukGIS development team uses the AQtime Pro profilers to isolate performance issues and bottlenecks. The solution ensures problems are identified quickly so that environments can run at peak performance.
“When we tested other potential solutions, it took us much longer to pinpoint bottleneck problems,” Kosinski points out. “With complex applications like ours, the other profilers simply don’t work as fast as AQtime Pro, and that’s an essential element of our software development lifecycle.”
“AQtime Pro enables us to verify our logical processes every time we develop or upgrade an application, and that’s a major key to our debug workflow process. Ultimately, this pays off in helping us make sure our products run faster and perform reliably for our clients. Thanks in part to AQtime Pro, our apps exceed client expectations!”
— Tomasz Kosinski, Vice President and Chief Developer
Benefits and Results
One of the most important benefits of AQtime for TatukGIS is the way the tool presents testing results using graphical views. The visualizations make it much easier to quickly identify and understand logical error problems within complex code.
“We can see when the flow of an application is not working in the way the developer thinks it should, Kosinski says. “And by seeing exactly where the issue is occurring, we can start working on a fix right away. That’s a big plus when dealing with millions of lines of code.”
Kosinski also emphasizes that even when developers know the program code well, it can be difficult to understand the interactions between routines and classes. It can also be difficult to know the number of calls.
“AQtime Pro enables us to understand the critical path of an application and which changes to that path will have the biggest impact,” he explains. “By looking at the graphs of the code, we can conduct granular line-by-line analysis to see which lines cause bottlenecks or memory issues.”
AQtime Pro has also helped the TatukGIS team learn certain coding mistakes to avoid. As examples, the team discovered that the cost of passing records in Delphi is very high. The team also found out how to avoid bottlenecks that are built into some frameworks by default.
“AQtime enables us to verify our logical processes every time we develop or upgrade an application, and that’s a major key to our debug workflow process,” Kosinski adds. “Ultimately, this pays off in helping us make sure our products run faster and perform reliably for our clients. Thanks in part to AQtime Pro, our apps exceed client expectations!”
Business Challenges
- Ensure application performance exceeds client expectations.
- Fix bottlenecks in complex applications before delivery to clients.
- Identify bottlenecks quickly to avoid slowing down the development lifecycle.
- Utilize coding profiler that works with Delphi, Java and .NET development environments.
SmartBear AQtime Pro
- Helps track down memory profiling issues, CPU and other I/O bottlenecks.
- Enables comprehensive code coverage analysis and performs fault simulation.
- Provides one of the only profiling tools for the Delphi development environment.
- Includes support for addition programming frameworks such as Java and .NET.
Measurable Results
- Functions as an essential software development component—14 years and counting.
- Identifies logical errors and when application flows do not work as intended.
- Enables developers to begin working on bottleneck fixes right away.
- Allows developers to evaluate impact of changes to application critical paths.
- Verifies logical processes every time applications are developed or upgraded.
- Helps make sure products run faster and perform reliably for clients.