Smart Software Solutions Inc 108 S Pierre St.
Pierre, SD 57501
605-222-3403
sales@smartsoftwareinc.com

Contact Us

Articles

Evaluating Code for Bottlenecks and Performance

Published 2 years ago

All computer applications boil down to the process of transferring and processing data. As applications become more complex, more and more steps are added to that process. With each new step, there is a new point at which data could potentially be bottlenecked. A bottleneck occurs at a process or component in an application that has the lowest throughput, therefore limiting the overall performance of an application. Identifying and correcting bottlenecks is crucial to maintaining a well performing application but it's not always an easy thing to do. When evaluating an application for performance you should always account for the possibility of a bottleneck. Here are 4 common points where an application will experience a performance bottleneck.

Data Access

90% of the time you will find that poor performance comes from a data access bottleneck. Spend some extra time to make sure your data storage is configured properly to handle the load required for the rest of the application. Database indices and query optimization can go a long way.

Data Processing

Some data processing can be very CPU intensive and in turn backs up the entire flow of data in your application. If your CPU is maxed, you should look at options to delay or offload some of the work that the application is doing.

UI Components

KISS (keep it simple stupid) is the take away here, overly complex or custom UI Components can have a huge hit on performance for the user. Fancy graphics and cool features can be good selling points but can also turn off a lot of potential users if they aren't tuned to work on a wide range of systems. Add an option for a more slimmed down interface that doesn't drain the user's system resources to appeal to more users.

Data Transmission

Internet speeds have made huge gains in recent years but this is still something you should be aware of. Data transfer can still bottleneck your performance if you are sending large chunks at a time. Consider sending data only as it's needed to increase the end-to-end performance as perceived by the user.

AUTHOR Preston Scott

Preston has been working for Smart Software since graduating from the University of South Dakota in 2009.  He received a B.S. in Computer Science.  Preston has quickly acquired the skills needed to advance to the Senior and Lead Software Engineer positions.  He has shown a unique ability to quickly adapt to new projects and technologies allowing him to provide robust solutions to complex tasks.  Preston specializes in scripting languages (PHP, ActionScript, JavaScript) as well as low-level language concepts such as memory management, concurrency, and data structures but also has experience and skills to effectively manage high-level languages.  He has also shown the ability to formulate and optimize complex SQL queries.

When not working, he enjoys hunting, fishing, and the many other outdoor activities offered in the beautiful Missouri river valley.