The Fast and the Furious: 8 Tips for Speeding Things Up

The Fast and the Furious: 8 Tips for Speeding Things Up

The way users experience software is very subjective, of course, but there are some ultimate truths that hold for all users. One of these is that the speed of the interface is critical. Users want instant feedback and instant gratification. It is our job as designers to structure the interactions of users with our software in such a way that doesn’t feel sluggish or unresponsive. This is the case even if under the covers a huge amount of work takes place.

The Importance of Speed for the User Experience

In today’s world of infinite choice and overwhelming information user’s attention is a scarce resource. Many studies show for web sites hundreds of a second are significant and if a page doesn’t load fast enough they users will simply click away and disappear.

Perceived Performance

An interesting fact is that users don’t care about performance per se, but rather they care about perceived performance. It means that even if the task at hand takes longer than the user’s threshold, if they think that your application is working fast they’ll be satisfied. In the rest of this article I’ll explore different ways to take advantage of this aspect of user behavior

How to Measure Speed

Before making any optimizations you need to be able to measure the speed of whatever it is you’re trying to make faster. I can write books on this topic, but the first thing is to have a good profiling framework in place and identify hot spots that impact overall performance. For example, if you made your core algorithm 500 times faster, you may be a hero, but you also might have actually hurt overall system performance because your algorithm was maybe responsible for only 5% of the total time to process a request, however the new 500X algorithm is using more memory, trashes caches and causes the other components responsible for 95% percent of the time to be much slower.

  1. Do less

    This is the best strategy period! Not only will your code go faster, you will save memory, have fewer bugs and have more time to improve existing code. Note that taking out features might not yield the same benefits. My recommendation is to focus on new requests coming your way to add functionality that don’t sit well with the original vision. That doesn’t mean saying no to everything, just exercise that brain of yours and adopt a skeptical stance when appropriate.

  2. Show progress

    This is not a great revelation. Everybody knows about progress bars or other progress indicators. But, there are a few nuances that are important. Some applications show only “I’m working” indicators. In the olden days it was the Windows hourglass and nowadays it is often the Mac’s spinning beach ball. This is not progress! It actually often symbolizes that the application is stuck and the only thing left working is your GUI happily informing you that it is working just fine. For many long running tasks there is no way to tell how long it is going to take. If you copy files from a remote server, then the load on the remote machine and the network condition will determine that. But, you can show progress by amount of work completed, which is even more relevant. Show something like 5/8 files copied. Even if some files are small and same are large and the progress is not uniform, your users will appreciate it. If you design APIs that perform long running tasks, provide a way to get progress information???either by allowing multiple calls to get status, through a separate progress API or through callbacks.

  3. Cheat

    My all-time favorite technique. Cheat, Lie and provide statistics. 4774 studies and 83% of the world’s most renowned statistics experts agree that invented numbers are just as useful as real numbers. How can you cheat? Consider an email client with an indicator for new messages. To be honest every time a user gets a new message you have to update the counter that can involve a lot of chatty communication between client and server to check if there are new messages or not. 99% of the time the user may not even care. For the 1% who do care, is it really that important to tell that they have exactly 5, 6 or 7 new messages? The important thing is to distinguish between no new messages at all, some messages and a lot of messages. When it gets to the tons of messages level (for example, more than 100) you can quite safely assume the user is not that interested in responding immediately to any message on this account. May applications in this case just display 99+ and don’t update at all anymore. When the user actually goes to read messages, then all the messages can be downloaded and the correct number is shown.

    The best performance cheat ever was in the game Ratchet and Clunk on the PlayStation. Whenever the player finished a level all the assets for the next level needed to be loaded from the DVD to memory. That was a long process that caused a significant pause in the game flow. The programmers cheated blatantly by making the main character stumble and fall before the finish line giving them some extra time to load the next level.

  4. Be lazy

    Being lazy means doing only what you have to do. There are many benefits for this approach. Your startup time is faster because you don’t do a lot of stuff upfront. The same goes for memory (you don’t load what you don’t need). It can make a huge difference between a sluggish app that takes forever to load and a snappy and responsive one.

  5. Prefetching

    Prefetching is exactly that opposite of being lazy. Prefetching is all about preempting the user and loading stuff ahead of time, so when the user needs something it is already there. It is also very useful for intermittently connected applications (either by design or by network conditions). By prefetching what you need, you are not surprised when the network suddenly goes away. How do you reconcile prefetching with being lazy? Both have their place (sometimes within the same application).

  6. Break it up

    Breaking up a long operation to multiple parts or even going all the way to streaming is another great tactic for some applications. If the user is requesting a gazillion items from a database she will be happy to get the first page quickly and the rest later.

  7. Go parallel

    These days multi-core, multi-processes and the cloud are the lay of the land. By parallelizing your work load you can achieve immense speedups. Note, that it is often pretty difficult to parallelize workloads that are by nature embarrassingly parallel to begin with.

  8. Throw more hardware at it

    Easiest solution ever, but not the cheapest and will often take you only so far. Jump the memory or bump the CPU and watch your performance numbers soar. In a distributed system, make sure you can load balance properly and just add more machines (or stronger machines) behind the load balancer.

Premature Optimization Is the Root of All Evil

Finally, the most important advice of all???are you sure you really need to go faster? In general, many techniques for improving performance hurt other important aspects of the system, such as flexibility, readability and maintainability. Don’t waste your time optimizing a system that’s fast enough and end up making it worse.

devx-admin

devx-admin

Share the Post:
USA Companies

Top Software Development Companies in USA

Navigating the tech landscape to find the right partner is crucial yet challenging. This article offers a comparative glimpse into the top software development companies

Software Development

Top Software Development Companies

Looking for the best in software development? Our list of Top Software Development Companies is your gateway to finding the right tech partner. Dive in

India Web Development

Top Web Development Companies in India

In the digital race, the right web development partner is your winning edge. Dive into our curated list of top web development companies in India,

USA Web Development

Top Web Development Companies in USA

Looking for the best web development companies in the USA? We’ve got you covered! Check out our top 10 picks to find the right partner

Clean Energy Adoption

Inside Michigan’s Clean Energy Revolution

Democratic state legislators in Michigan continue to discuss and debate clean energy legislation in the hopes of establishing a comprehensive clean energy strategy for the

Chips Act Revolution

European Chips Act: What is it?

In response to the intensifying worldwide technology competition, Europe has unveiled the long-awaited European Chips Act. This daring legislative proposal aims to fortify Europe’s semiconductor

USA Companies

Top Software Development Companies in USA

Navigating the tech landscape to find the right partner is crucial yet challenging. This article offers a comparative glimpse into the top software development companies in the USA. Through a

Software Development

Top Software Development Companies

Looking for the best in software development? Our list of Top Software Development Companies is your gateway to finding the right tech partner. Dive in and explore the leaders in

India Web Development

Top Web Development Companies in India

In the digital race, the right web development partner is your winning edge. Dive into our curated list of top web development companies in India, and kickstart your journey to

USA Web Development

Top Web Development Companies in USA

Looking for the best web development companies in the USA? We’ve got you covered! Check out our top 10 picks to find the right partner for your online project. Your

Clean Energy Adoption

Inside Michigan’s Clean Energy Revolution

Democratic state legislators in Michigan continue to discuss and debate clean energy legislation in the hopes of establishing a comprehensive clean energy strategy for the state. A Senate committee meeting

Chips Act Revolution

European Chips Act: What is it?

In response to the intensifying worldwide technology competition, Europe has unveiled the long-awaited European Chips Act. This daring legislative proposal aims to fortify Europe’s semiconductor supply chain and enhance its

Revolutionized Low-Code

You Should Use Low-Code Platforms for Apps

As the demand for rapid software development increases, low-code platforms have emerged as a popular choice among developers for their ability to build applications with minimal coding. These platforms not

Cybersecurity Strategy

Five Powerful Strategies to Bolster Your Cybersecurity

In today’s increasingly digital landscape, businesses of all sizes must prioritize cyber security measures to defend against potential dangers. Cyber security professionals suggest five simple technological strategies to help companies

Global Layoffs

Tech Layoffs Are Getting Worse Globally

Since the start of 2023, the global technology sector has experienced a significant rise in layoffs, with over 236,000 workers being let go by 1,019 tech firms, as per data

Huawei Electric Dazzle

Huawei Dazzles with Electric Vehicles and Wireless Earbuds

During a prominent unveiling event, Huawei, the Chinese telecommunications powerhouse, kept quiet about its enigmatic new 5G phone and alleged cutting-edge chip development. Instead, Huawei astounded the audience by presenting

Cybersecurity Banking Revolution

Digital Banking Needs Cybersecurity

The banking, financial, and insurance (BFSI) sectors are pioneers in digital transformation, using web applications and application programming interfaces (APIs) to provide seamless services to customers around the world. Rising

FinTech Leadership

Terry Clune’s Fintech Empire

Over the past 30 years, Terry Clune has built a remarkable business empire, with CluneTech at the helm. The CEO and Founder has successfully created eight fintech firms, attracting renowned

The Role Of AI Within A Web Design Agency?

In the digital age, the role of Artificial Intelligence (AI) in web design is rapidly evolving, transitioning from a futuristic concept to practical tools used in design, coding, content writing

Generative AI Revolution

Is Generative AI the Next Internet?

The increasing demand for Generative AI models has led to a surge in its adoption across diverse sectors, with healthcare, automotive, and financial services being among the top beneficiaries. These

Microsoft Laptop

The New Surface Laptop Studio 2 Is Nuts

The Surface Laptop Studio 2 is a dynamic and robust all-in-one laptop designed for creators and professionals alike. It features a 14.4″ touchscreen and a cutting-edge design that is over

5G Innovations

GPU-Accelerated 5G in Japan

NTT DOCOMO, a global telecommunications giant, is set to break new ground in the industry as it prepares to launch a GPU-accelerated 5G network in Japan. This innovative approach will

AI Ethics

AI Journalism: Balancing Integrity and Innovation

An op-ed, produced using Microsoft’s Bing Chat AI software, recently appeared in the St. Louis Post-Dispatch, discussing the potential concerns surrounding the employment of artificial intelligence (AI) in journalism. These

Savings Extravaganza

Big Deal Days Extravaganza

The highly awaited Big Deal Days event for October 2023 is nearly here, scheduled for the 10th and 11th. Similar to the previous year, this autumn sale has already created

Cisco Splunk Deal

Cisco Splunk Deal Sparks Tech Acquisition Frenzy

Cisco’s recent massive purchase of Splunk, an AI-powered cybersecurity firm, for $28 billion signals a potential boost in tech deals after a year of subdued mergers and acquisitions in the

Iran Drone Expansion

Iran’s Jet-Propelled Drone Reshapes Power Balance

Iran has recently unveiled a jet-propelled variant of its Shahed series drone, marking a significant advancement in the nation’s drone technology. The new drone is poised to reshape the regional

Solar Geoengineering

Did the Overshoot Commission Shoot Down Geoengineering?

The Overshoot Commission has recently released a comprehensive report that discusses the controversial topic of Solar Geoengineering, also known as Solar Radiation Modification (SRM). The Commission’s primary objective is to

Remote Learning

Revolutionizing Remote Learning for Success

School districts are preparing to reveal a substantial technological upgrade designed to significantly improve remote learning experiences for both educators and students amid the ongoing pandemic. This major investment, which

Revolutionary SABERS Transforming

SABERS Batteries Transforming Industries

Scientists John Connell and Yi Lin from NASA’s Solid-state Architecture Batteries for Enhanced Rechargeability and Safety (SABERS) project are working on experimental solid-state battery packs that could dramatically change the

Build a Website

How Much Does It Cost to Build a Website?

Are you wondering how much it costs to build a website? The approximated cost is based on several factors, including which add-ons and platforms you choose. For example, a self-hosted