14

I have a page which is very slow, not in loading, but in terms of the responsiveness of typing into the form fields on the page.

There is no ajax on the page - this is nothing to do with network transport.

What are good strategies for discovering where the code bottlenecks are? I have found nothing in the chrome developer tools to tell me where the bottlenecks are.

Rob
  • 26,989
  • 16
  • 82
  • 98
Marcin
  • 48,559
  • 18
  • 128
  • 201

2 Answers2

5

Webkit has a 'profile' option. Open the developer tools (ctrl+shift+i) and click on 'Profiles'. From there you can see a record button (the circle) at the bottom. Click it and use your page as you normally would. Click it again to stop and inspect your timelines for your function calls!

Alternatively you can benchmark functions individually using:

console.time( "Some label" );
console.timeEnd( "Some label" );
KeatsKelleher
  • 10,015
  • 4
  • 45
  • 52
3

It sounds to me like you have some event firing on each key press on you input field. Things you can do :

  1. If Chrome's profiler doesn't fit your needs, try FireBug or IE9's profiler which is quite decent. In IE9 you can see how much CPU time was spent on each function call.
  2. Temporarily remove the handlers from the fields, one by one, and observe any changes in the performance.

Let me know how it goes!

Boris Jockov
  • 614
  • 1
  • 6
  • 15
  • 1
    I think you're right that there are handlers firing, but I haven't attached any to the fields. All chrome's timeline and profiler turns up is that some code inside jquery is firing. Very odd. – Marcin Dec 06 '11 at 09:17
  • 1
    It's probably client side validation kicking in. – Boris Jockov Dec 06 '11 at 13:27
  • I hope not, I haven't written any client-side validation. – Marcin Dec 06 '11 at 13:54