Interview question: how do you improve slow pages?

I was asked this question in an interview yesterday

"how do you improve slow pages?"

This was my response but I wonder what the interviewer had in mind or what the correct answer is...

I said I'd check to see if the page has database calls (improve the sql), also check caching on it, and viewstate for the page.
Who is Participating?
Dave BaldwinConnect With a Mentor Fixer of ProblemsCommented:
Google Pagespeed has a lot of recommendations.  One of the more obvious I guess is to minimize the number of files that are loaded including images and CSS and javascript.
CamilliaAuthor Commented:
I also said something about images.

I wonder if what I said was incorrect. I'll take a look at the link. thanks
It's an acceptable answer but whether or not it was the one they wanted depends on who was asking the question and why.  I can't tell you what they wanted to see but I can say what your answer would have told me had I asked the question.
1.  Most of your experience is related to 2 tier applications (your answer was limited to data a presentation layers).
2.  You're confident enough in your own coding abilities to overlook the possibility of errors that could lead to memory leaks or runaway threads (you didn't address optimizing code).
3.  Your experience working with development teams is limited (you didn't look at optimizing code others may have written).
4.  Your platform experience is limited (you didn't address possible web server, OS, or hardware limitations).
If I was asking the question I'd want to see an answer that indicated more team development experience and if I was looking to hire someone to develop solutions for in-house use I'd also want to see something that addressed possible platform related limitations (you wouldn't necessarily need to be an expert but should at least be willing to engage people that are).
The new generation of project management tools

With’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

I would think that step number one, is determining WHY pages are slow.  Is it too much data to transmit, or is it a problem at the server end, generating the page?  In what way is the page slow, is it slow to use, or slow to load?

It seems like a fairly vague question that needs to be responded to with more questions.
CamilliaAuthor Commented:
I should've mentioned #4, specially, because I worked on a system a while back and the hardware's limitation was an issue.
PortletPaulConnect With a Mentor Commented:
:) there has to be a gadzillion lists of things to do for this

Here's a list of 10 tips, in summary:
1. Minimize HTTP Requests
2. Reduce server response time
3. Enable compression
4. Enable browser caching
5. Minify Resources
6. Optimize images
7. Optimize CSS Delivery
8. Prioritize above-the-fold content
9. Reduce the number of plugins you use on your site
10. Reduce redirects

and here a list of 15 tips in 3 categories, in summary:
a) Server

1. Leverage browser caching
2. Enable Keep-Alive
3. Enable gzip compression
4. Make landing page redirects cacheable
5. Use a CDN

b) Content elements

1. Minimize redirects
2. Remove query strings from static resources
3. Specify a character set
4. Minify your codes
5. Avoid bad requests
6.Serve resources from a consistent URL
7. Reduce DNS lookups

c) CSS, JS and Images

1. Specify image dimensions
2. Optimize images
3. Put CSS at the top and JS at the bottom
CamilliaAuthor Commented:
One thing I'm, of course, noticing is that since I've been working with a propriety system for a year, I've fallen behind in .Net/SQL and definitely out of practice when it comes to being interviewed.  

I did get a job offer last week but didn't want to take a pay cut. Still, I need some catching up to do.
Scott ThomsonConnect With a Mentor Commented:
Personally if someone asked me that question for a tech point of view I would start with making sure I understood the question with a

Can you explain to me what you mean by slow?

You can go through and code a million pages optimizing as many things as you want but if its a user on a Windows 9X machine and you don't ask until you spend 40 hours coding you have just lost a lot of time.

It may be that the question was not necessarily a question of your ability but a purposeful vague question to see if common sense wins before coding ability..?
Dave BaldwinFixer of ProblemsCommented:
Portlet Paul has a good list.  However, it and the Google Pagespeed recommendations have the same problems.  #1. Web sites on shared hosting often can not change some of those things.  #2. Clients on shared hosting are frequently changing their pages in ways that Prevent good caching.  I have one page that I have changed because of client requests every day for at least a week.  Caching does no good under that circumstance.
CamilliaAuthor Commented:
Maybe, Scott. Good point about asking follow up questions to get a better understanding of the question.
Scott ThomsonCommented:
Just based on the question it seems like they did not specify to fix what part of a slow page.. so it seems like they wanted some more prompting about what the slowness may have meant

Just my spin on it.. :)
CamilliaAuthor Commented:
Going thru a 90 mins interview is tiring but I know how the interviews are now.
Scott ThomsonCommented:
CamilliaAuthor Commented:
Thanks, Scott, for the link. Questions like that, I have an easy time answering.

It's the technical questions that have been getting me in the past 2 interviews. Not even the technical questions's the "live coding" session.

I will post the one I had to do yesterday. Implement an interface and write code to get the count of binary tree. It was at the of the interview and I didn't quite understand it. I did talk thru it out loud (it was a phone interview) but still...I couldn't get it right.

How would I even think in 10 or 15 mins? How can I prepare for live coding interviews? I have another 90 min one next week

The interviewer helped me with it and I have the answer but this is the question:

// write an implementation for the interface
public interface IBinaryTree<T>
    IBinaryTree<T> Left

    IBinaryTree<T> Right

    T Data

// implement the extension method

public static class BinaryTreeHelper
    public static int CountNodes<T>(this IBinaryTree<T> tree)
        // Implement this

Open in new window

deepu chandranCommented:
async programming is one of the most important addition to improve speed
All Courses

From novice to tech pro — start learning today.