wiki:QtWebKitPerformanceUtilities

Version 1 (modified by zecke@selfish.org, 11 years ago) (diff)

Create overview of the utilities... stub

Overview and Description of the Performance Utilities

The QtWebKit Performance git repository contains a set of host utilities, manual tests and benchmarks that should help to profile QtWebKit in a stable environment. The host utilities are responsible for mirroring real webcontent, serving it with a special webserver and providing analysis application to look at the results. The test applications allow to stress test QtWebKit and the performance tools provide benchmarks that focus on specific areas of QtWebKit.

Host Utilities

The mirroring application

The mirroring application can be found in the mirror/ directory and allows to mirror web content to a local SQLite3 database. It is possible to use the cookiejar of Arora to reuse the login cookies and mirror logged in pages of services like facebook.com, gmail.com. The SQLite3 database can be served by the http_server.

The do_mirror.sh script is included in the distribution to create clones of some famour websites. The list was collected by personal preference and the alexa.com list of popular websites. When invoking do_mirror.sh all arguments are passed on to the mirror application. This allows to use the Arora cookie jar for mirroring the whole set of pages.

The mirroring application is implemented as a QNetworkAccessManager that is creating QNetworkReply proxies and is writing out the received raw HTTP headers and the read content.

The http_server

The http_server application is a simple multi threaded HTTP server. It is looking up the requested URL in the specified database and then sending out the stored http header and content. Executing the http_server requires root privileges as it attempts to bind to port 80.

The memusgatestat utility

The memusagestat utility was extracted from the glibc sourcecode. It is capable of creating a graph from a trace recorded by the libmemusage.so.

Test Applications

An example launcher

A stress testing application

Performance tools

The loading test

The scrolling test

The painting test