Claims
- 1. A method for measuring client-side performance, the method comprising the steps of:
intercepting an item that is to be sent to a client process prior to the arrival of the item at the client process; modifying the item to produce a modified item that includes code which causes one or more processors on the client device to perform the steps of:
measuring performance related to a service associated with the item, and performing one or more acts based on a measurement resulting from said step of measuring performance; and sending the modified item to the client process.
- 2. The method of claim 1, wherein said step of modifying the item is performed transparently relative to an application that generates the item for the service.
- 3. The method of claim 1, wherein said steps of measuring performance and performing one or more acts based on the measurement are performed transparently relative to a user of the client process.
- 4. The method of claim 1, said step of performing one or more acts based on the measurement further comprising the step of sending data indicating the measurement to an entity over a network.
- 5. The method of claim 4, said step of sending the data to an entity further comprising storing the data in a data structure that is automatically sent to a server device associated with said service in response to a later request from the client process for said service.
- 6. The method of claim 5, wherein:
the client process is a web browser; and the data structure is a cookie stored on the client device by the web browser.
- 7. The method of claim 4, wherein:
the step of modifying the item includes adding code to the item that causes the client process to issue a request; and said step of sending data to an entity further comprises sending the request including the data to a server device.
- 8. The method of claim 7, wherein the request is for a particular file and in response to the request for the particular file no change is made by the client process to a page already rendered on a display of the client device.
- 9. The method of claim 4, further comprising storing the data indicating the measurement in a log file on a server device.
- 10. The method of claim 4, further comprising storing the data indicating the measurement in a database of the entity on the network.
- 11. The method of claim 1, further comprising the steps of:
receiving over a network data indicating the measurement from the client process; and performing one or more acts based on the data indicating the measurement.
- 12. The method of claim 11, said step of performing one or more acts based on the data indicating the measurement further comprising:
determining whether the data indicates performance has fallen below a threshold; and if the data indicates performance has fallen below the threshold, then sending a notification message.
- 13. The method of claim 1, said step of performing one or more acts based on the measurement further comprising:
determining whether the measurement indicates performance has fallen below a threshold; and if the measurement indicates performance has fallen below the threshold, then sending a notification message.
- 14. The method of claim 13, said step of sending a notification message comprising sending the notification message to an administrator for a server device associated with said service.
- 15. The method of claim 13, said step of sending a notification message comprising sending the notification message to a user of the client process.
- 16. The method of claim 1, wherein the measurement is a client response time between a first time when a user of the client process selects an item on a first web page rendered on a display of the client device and a second time when a second web page is fully rendered on the display of the client device.
- 17. The method of claim 1, wherein:
the code further causes the one or more processors on the client device to perform the step of collecting ancillary information relating to one or more components of the client process that participate in obtaining the service from the application; and said step of performing one or more acts based on the measurement includes correlating the measurement with the ancillary information.
- 18. The method of claim 1, after said step of intercepting the item and before said step of modifying the item, further comprising the steps of:
determining a type associated with the item produced by the application; and determining whether to perform said step of modifying the item based on the type of the item.
- 19. The method of claim 1, after said step of intercepting the item and before said step of modifying the item, further comprising the steps of:
determining a unique reference associated with the item produced by the application; and determining whether to perform said step of modifying the item based on whether the unique reference matches a particular reference.
- 20. The method of claim 1, after said step of intercepting the item and before said step of modifying the item, further comprising the steps of:
determining a percentage of modified items relative to items to be sent to the client process; and determining whether to perform said step of modifying the item based on whether the percentage is below a particular percentage.
- 21. The method of claim 1, wherein:
the item to be sent to the client process is stored in a cache before the item is sent to the client process; said step of intercepting the item comprises accessing the item in the cache; and said step of sending the modified item to the client process comprises replacing the item in the cache with the modified item.
- 22. The method of claim 21, wherein the cache is on a server device associated with said service.
- 23. The method of claim 21, wherein the cache is on a proxy server for the client process.
- 24. The method of claim 1, wherein:
the item includes hypertext markup language (HTML) statements; and the client process is a web browser.
- 25. The method of claim 24, wherein:
the web browser is configured to run javascript; and the code comprises javascript statements.
- 26. The method of claim 1, wherein the code conforms to a scripting language.
- 27. The method of claim 1, wherein the code comprises a Java applet.
- 28. The method of claim 1, wherein the code comprises an ActiveX module.
- 29. The method of claim 1, said step of modifying the item further comprising appending the code to the end of the item.
- 30. The method of claim 1, wherein:
the item includes markup language statements; and said step of modifying the item further comprises inserting the code at a particular statement of the markup language statements.
- 31. The method of claim 1, wherein:
the code includes at least one of first code added to a first item and second code added to a second item; and said measuring performance comprises starting a time measurement based on the first code and ending a time measurement based on the second code.
- 32. The method of claim 31, wherein:
the first code is executed in response to a user of the client process clicking on a control included in the first item; and the second code is executed in response to fully loading the second item.
- 33. The method of claim 1, wherein the code includes first code executed upon arrival of the first code at the client process and second code executed in response to a data structure generated by the client process after arrival of the first code.
- 34. The method of claim 33, wherein the data structure describes an event at the client device.
- 35. The method of claim 34, wherein the event is a message received from an operating system executing on the client device.
- 36. The method of claim 34, wherein the event is a manipulation of a control of the client device by a user.
- 37. The method of claim 33, wherein the second code causes the one or more processors to perform the step of measuring performance.
- 38. The method of claim 33, wherein the second code causes the one or more processors to record a current time.
- 39. The method of claim 33, wherein:
the item to be sent to the client process includes third code to be executed in response to the data structure generated by the client process; and the first code causes the one or more processors to perform the step of replacing the third with the second code.
- 40. The method of claim 1, wherein the code includes first code executed in response to a data structure describing a first event generated by the client process and second code executed in response to a data structure describing a second event generated by the client process.
- 41. The method of claim 40, wherein:
the item to be sent to the client process includes third code to be executed in response to the data structure describing the second event by the client process; and the first code causes the one or more processors to perform the step of replacing the third with the second code.
- 42. A computer-readable medium carrying one or more sequences of instructions for measuring client-side performance, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
intercepting an item that is to be sent to a client process prior to the arrival of the item at the client process; modifying the item to produce a modified item that includes code which causes one or more processors on the client device to perform the steps of:
measuring performance related to a service associated with the item, and performing one or more acts based on a measurement resulting from said step of measuring performance; and sending the modified item to the client process.
- 43. The computer-readable medium of claim 42, wherein said step of modifying the item is performed transparently relative to an application that generates the item for the service.
- 44. The computer-readable medium of claim 42, wherein said steps of measuring performance and performing one or more acts based on the measurement are performed transparently relative to a user of the client process.
- 45. The computer-readable medium of claim 42, said step of performing one or more acts based on the measurement further comprising the step of sending data indicating the measurement to an entity over a network.
- 46. The computer-readable medium of claim 45, said step of sending the data to an entity further comprising storing the data in a data structure that is automatically sent to a server device associated with said service in response to a later request from the client process for said service.
- 47. The computer-readable medium of claim 46, wherein:
the client process is a web browser; and the data structure is a cookie stored on the client device by the web browser.
- 48. The computer-readable medium of claim 45, wherein:
the step of modifying the item includes adding code to the item that causes the client process to issue a request; and said step of sending data to an entity further comprises sending the request including the data to a server device.
- 49. The computer-readable medium of claim 48, wherein the request is for a particular file and in response to the request for the particular file no change is made by the client process to a page already rendered on a display of the client device.
- 50. The computer-readable medium of claim 45, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the step of storing the data indicating the measurement in a log file on a server device.
- 51. The computer-readable medium of claim 45, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the step of storing the data indicating the measurement in a database of the entity on the network.
- 52. The computer-readable medium of claim 42, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors to perform the steps of:
receiving over a network data indicating the measurement from the client process; and performing one or more acts based on the data indicating the measurement.
- 53. The computer-readable medium of claim 52, said step of performing one or more acts based on the data indicating the measurement further comprising:
determining whether the data indicates performance has fallen below a threshold; and if the data indicates performance has fallen below the threshold, then sending a notification message.
- 54. The computer-readable medium of claim 42, said step of performing one or more acts based on the measurement further comprising:
determining whether the measurement indicates performance has fallen below a threshold; and if the measurement indicates performance has fallen below the threshold, then sending a notification message.
- 55. The computer-readable medium of claim 54, said step of sending a notification message comprising sending the notification message to an administrator for a server device associated with said service.
- 56. The computer-readable medium of claim 54, said step of sending a notification message comprising sending the notification message to a user of the client process.
- 57. The computer-readable medium of claim 42, wherein the measurement is a client response time between a first time when a user of the client process selects an item on a first web page rendered on a display of the client device and a second time when a second web page is fully rendered on the display of the client device.
- 58. The computer-readable medium of claim 42, wherein:
the code further causes the one or more processors on the client device to perform the step of collecting ancillary information relating to one or more components of the client process that participate in obtaining the service from the application; and said step of performing one or more acts based on the measurement includes correlating the measurement with the ancillary information.
- 59. The computer-readable medium of claim 42, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors, after said step of intercepting the item and before said step of modifying the item, to perform the steps of:
determining a type associated with the item produced by the application; and determining whether to perform said step of modifying the item based on the type of the item.
- 60. The computer-readable medium of claim 42, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors, after said step of intercepting the item and before said step of modifying the item, to perform the steps of:
determining a unique reference associated with the item produced by the application; and determining whether to perform said step of modifying the item based on whether the unique reference matches a particular reference.
- 61. The computer-readable medium of claim 42, wherein execution of the one or more sequences of instructions by the one or more processors further causes the one or more processors, after said step of intercepting the item and before said step of modifying the item, to perform the steps of:
determining a percentage of modified items relative to items to be sent to the client process; and determining whether to perform said step of modifing the item based on whether the percentage is below a particular percentage.
- 62. The computer-readable medium of claim 42, wherein:
the item to be sent to the client process is stored in a cache before the item is sent to the client process; said step of intercepting the item comprises accessing the item in the cache; and said step of sending the modified item to the client process comprises replacing the item in the cache with the modified item.
- 63. The computer-readable medium of claim 62, wherein the cache is on a server device associated with said service.
- 64. The computer-readable medium of claim 62, wherein the cache is on a proxy server for the client process.
- 65. The computer-readable medium of claim 42, wherein:
the item includes hypertext markup language (HTML) statements; and the client process is a web browser.
- 66. The computer-readable medium of claim 65, wherein:
the web browser is configured to run javascript; and the code comprises javascript statements.
- 67. The computer-readable medium of claim 42, wherein the code conforms to a scripting language.
- 68. The computer-readable medium of claim 42, wherein the code comprises a Java applet.
- 69. The computer-readable medium of claim 42, wherein the code comprises an ActiveX module.
- 70. The computer-readable medium of claim 42, said step of modifying the item further comprising appending the code to the end of the item.
- 71. The computer-readable medium of claim 42, wherein:
the item includes markup language statements; and said step of modifying the item further comprises inserting the code at a particular statement of the markup language statements.
- 72. The computer-readable medium of claim 42, wherein:
the code includes at least one of first code added to a first item and second code added to a second item; and said measuring performance comprises starting a time measurement based on the first code and ending a time measurement based on the second code.
- 73. The computer-readable medium of claim 72, wherein:
the first code is executed in response to a user of the client process clicking on a control included in the first item; and the second code is executed in response to fully loading the second item.
- 74. The computer-readable medium of claim 42, wherein the code includes first code executed upon arrival of the first code at the client process and second code executed in response to a data structure generated by the client process after arrival of the first code.
- 75. The computer-readable medium of claim 74, wherein the data structure describes an event at the client device.
- 76. The computer-readable medium of claim 75, wherein the event is a message received from an operating system executing on the client device.
- 77. The computer-readable medium of claim 75, wherein the event is a manipulation of a control of the client device by a user.
- 78. The computer-readable medium of claim 74, wherein the second code causes the one or more processors to perform the step of measuring performance.
- 79. The computer-readable medium of claim 74, wherein the second code causes the one or more processors to record a current time.
- 80. The computer-readable medium of claim 74, wherein:
the item to be sent to the client process includes third code to be executed in response to the data structure generated by the client process; and the first code causes the one or more processors to perform the step of replacing the third with the second code.
- 81. The computer-readable medium of claim 42, wherein the code includes first code executed in response to a data structure describing a first event generated by the client process and second code executed in response to a data structure describing a second event generated by the client process.
- 82. The computer-readable medium of claim 81, wherein:
the item to be sent to the client process includes third code to be executed in response to the data structure describing the second event by the client process; and the first code causes the one or more processors to perform the step of replacing the third with the second code.
- 83. A method for responding to client-side performance on a network connecting a client device executing a client process to a server device configured to execute an application to provide a service, the method comprising the steps of:
intercepting an item produced by the application; modifying the item transparently relative to the application to produce a modified item including code which causes one or more processors on the client device to perform the steps of,
measuring performance related to the service provided by the application, and based on a measurement resulting from said step of measuring performance, sending data indicating the measurement to the server device; sending the modified item to the client process; receiving the data indicating the measurement; storing the data indicating the measurement in a database; and based on the data indicating the measurement,
determining whether the data indicates performance has fallen below a threshold, and if the data indicates performance has fallen below the threshold, then sending a notification message.
- 84. A computer-readable medium carrying:
data indicating elements for presentation on a display of a device having one or more processors by a client process executing on the one or more processors; a first sequence of instructions executed upon receipt at the device; and a second sequence of instructions invoked after arrival of the first sequence of instructions by the client process, wherein,
the second sequence of instructions causes the one or more processors to perform the steps of:
measuring performance related to presenting the elements on the display; and performing one or more acts based on a measurement resulting from said step of measuring performance; and the first sequence of instructions causes the client process to associate the second sequence of instructions with an element indicated by the data.
CLAIM OF PRIORITY
[0001] This application claims priority to U.S. provisional application serial No. 60/285,577, filed Apr. 20, 2001, entitled “Method for Web Client Response-Time Measurement” by Steven Viavant, Arsalan Farooq, Jaydeep Marfatia and Manu Shukla, hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60285577 |
Apr 2001 |
US |