Skip to main content

Application Optimization Essentials: Introduction to Application Optimization

· 7 min read
Jake Norman

Application Optimizations Essentials

In previous blog posts, we talked about optimizations as they related to the Windows Operating System, including Active Setup, the Microsoft Store, Services and Scheduled Tasks, and more.

The focus of this blog series will be Application Optimizations. This article will cover the basics of how I attempt to optimize applications. All upcoming blog posts will provide more details about commonly used applications that stray outside of the basics discussed here. Since these blog posts will be centered around just one application or family of similar applications, they will be mostly shorter in nature, but will still provide you with useful information you can use to optimize your environment. While OS optimizations are pretty straightforward, optimizing applications is a bit of trial and error, as a developer can use any, or none, of the methods denoted in the OS Optimizations blog series within their application. Google Chrome, for instance, utilizes Active Setup, Services and Scheduled Tasks and so each of those pieces need to be identified, after which Chrome can be optimized (if desired). Meanwhile, Java Runtime Environment utilizes a Startup Item, as well as custom registry keys that need to be understood before utilization.

Please note that the optimizations provided in this blog are intended only as a guide. Be sure to test the optimizations described internally before pushing the changes to your production environment. With the above information understood, let me delve into what I look for when optimizing applications.

Installation

While Application Optimization starts post-install, I wanted to spend some time talking about installation options. Due to the prevalence of downloaded installation files, the installation process for applications as a whole has been drastically altered. Back in the day, when dinosaurs (like myself) roamed the Earth and CDs were still used to install applications, all application files were in one place. Now, applications are installed from downloaded files from the Internet.

Now, to allow those files to download quicker, the full application is not built into that download, just a header called an Online Installer, whose sole purpose is to go and download the full application before installing it for you. While this process is much easier for the basic home user, it actually prevents us as admins or architects from accomplishing the same level of granularity within the application as we may desire. Want to edit the installation files before the installation takes place so that the application installs according to your desire? Not really possible.

That's where either the Enterprise Bundle or an Offline Installer come into play, although I would prefer the former over the latter. The Enterprise Bundle, if it exists, will generally contain not just the Offline Installer, but also additional enterprise-level items that may help you in administering the application, such as policy files, additional installers, and enterprise-level documentation. The Offline Installer, on the other hand, is just the full application install, usually in a compressed file, that is used in lieu of the Online Installer. In my opinion, either of the above options is better than the Online Installer, when it comes to management of applications.

Post-Installation

Post-installation of an application is where we will start to follow the guidelines and thought processes I outlined in my OS Optimizations Essentials blog series. We will be tackling each section more below. Each section below will follow the same basic path:

  • Identify any possible items used by the installed applications.
  • Discover the purpose of found items.
  • Decide whether these items are necessary for the application to function as you desire within your environment. If they are necessary, leave them alone. If they are not, optimize them.
  • Implement your decision.

Services/Scheduled Tasks

Many applications nowadays will create services or scheduled tasks with the sole purpose of keeping the application up to date. While that purpose is a great idea for a home user, it may not be a good idea for an enterprise requiring strict application control. Following the information denoted in Part 3 of the Windows OS Optimization Essentials blog, the purpose here is to identify, discover, decide, and implement whether any services or scheduled tasks are created by the application in question.

Generally, but not always, services and scheduled tasks will contain the name of the application, as with Google and Adobe, but sometimes that name will be obfuscated, requiring a deeper knowledge of the application itself. Optimizing Services and Scheduled Tasks can benefit both from a resource utilization standpoint as well as user experience, so identifying and optimizing these items provide great value to your environment.

Startup Items

Startup Items, such as Run or RunOnce registry items, are commonly used devices by developers to force applications to run or self-configure on machine start up or user logon. While some of these are generally necessary, such as security software, others may be more of an annoyance and something you wish to optimize. As such, following Part 4 of the Windows OS Optimization Essentials blog, Startup Items are even more on you to identify and determine the use case for each, as they are generally application specific. Optimizing Startup Items provide sometimes profound user experience as optimizing them reduces resource utilization when the user sees the desktop, increasing user experience as they are able to open applications they want rather than applications that want to open.

Active Setup

Active Setup isn't something that is commonly used by developers outside of Microsoft, but usage of Active Setup is catching on more and more recently as a way to provide per user customizations of an application when the application is installed in a per-machine context. Again, following the information denoted in Part 1 of the Windows OS Optimization Essentials blog, we are again attempting to identify any Active Setup items that can potentially be optimized and optimizing as decided.

Once identified and decided, optimizing any Active Setup items will directly contrast to the logon times for your end users.

UWP Applications

Universal Windows Platform Applications, AKA UWP Apps, AKA Appx Packages, were only relatively recently developed, back with Windows 8.1, and are therefore not very often used in an application context, but they are more and more starting to be used by developers and are therefore worth investigating.

As per Part 2 of the Windows OS Optimization Essentials blog, UWP Items come in two different flavors, provisioned and installed. Identifying and potentially optimizing each is a determination that would need to be made. UWP Applications, if provisioned, will increase first time user logon as they are copied over and installed. Installed UWP Applications, on the other hand, will not increase the logon time but will increase resource utilization and, if not desired, make for great optimization fodder.

What's Next?

So now that we have covered the basics of what I look for when attempting to optimize applications, the next blog will do a deeper dive into Google Chrome, one of the most commonly used browser applications, and what you should be on the lookout for, including, and extending past, the above.

As always, any information provided in this guide are recommendations only and should be vetted against your environment before implementing in a production scenario.

If you need assistance in optimizing your VDI or DaaS images, check out our Nutanix Xpert Services Template Image Creation and Optimization service.

Contact Us

Need help with your Frame deployment, have an idea for a new use case, or just want to learn more about Frame?

Email us at frame-sales@dizzion.com and one of our experts will reach out!

Follow Us

LinkedInTwitter
#workfromframe
Jake Norman

More content created by

Jake Norman
Jake Norman is a Staff Consultant with Nutanix Professional Services. He has been a part of the Professional Services team for three years and prior to that spent 20+ years in a myriad of different environments focusing on EUC and UX work.

© 2024 Dizzion, Inc. All rights reserved. Frame, the Frame logo and all Dizzio product, feature and service names mentioned herein are registered trademarks of Dizzion, Inc. in the United States and other countries. All other brand names mentioned herein are for identification purposes only and may be the trademarks of their respective holder(s). This post may contain links to external websites that are not part of Dizzion. Dizzion does not control these sites and disclaims all responsibility for the content or accuracy of any external site. Our decision to link to an external site should not be considered an endorsement of any content on such a site. Certain information contained in this post may relate to or be based on studies, publications, surveys and other data obtained from third-party sources and our own internal estimates and research. While we believe these third-party studies, publications, surveys and other data are reliable as of the date of this post, they have not independently verified, and we make no representation as to the adequacy, fairness, accuracy, or completeness of any information obtained from third-party sources.