Fuzzinator, a mutation and generation based browser fuzzer

Fuzzers are widely used tools for testing software. They can generate random test cases and use them as input against the software under fuzzing/testing. Since the tests have randomly-built content, it is not necessary to check them for correctness, but they are suitable for catching rough bugs like use-after-frees, memory corruptions, assertion failures and further crashes. There are many approaches how to generate these tests, but all of them can be categorized into three main groups: whitebox, blackbox and graybox fuzzers.

Memory consumption: QtWebKit->compare(WebKit1, WebKit2, SystemMalloc, TCmalloc)

Last year I got a Nokia N9 on Qt Developer Days, it's a great mobile phone, I really like it, but I haven't published any memory measurement results about it yet. In my last post I did WebKit memory profiling on it with Valgrind, but it was all about heap usage. I think a number of persons are interested in the overall memory usage such as peak memory usage, the sizes of the used libraries, etc. During QtWebKit's life-cycle we switch from one library to another, usually because of performance considerations. In the past we do not take too much attention to memory consumption-related topics while switching between libraries, although it would be very vital to keep eye on this area as well.

Heap usage of QtWebKit

In this post I would like to share with you one of my latest memory consumption measurements about the heap usage of QtWebKit.
We have a nice extension for Valgrind called Freya which is capable of measuring used memory in per directory. So, I decided to make measurements about the distribution of memory consumption in JavaScriptCore and WebCore and publish the results about the peak memory usage and the overall memory usage.

What is happening with the memory consumption of WebKit on 64 bit?

64 bit systems allow allocating more memory, but this extra space has a trade-of: the pointers are grown to 64 bit wide which increases the total memory consumption. Ever wondered about the price of 64 bit? Well, you can find comparisons here about some popular pages on the Qt port of WebKit. Furthermore, we offer some CSS subsystem related comparisons at the end of the post.

Turn on the NEON-light. Stronger than you would expect.

ARM-NEON is a SIMD (Single instruction, multiple data) instruction set for the latest ARM cores. The NEON instruction set focuses on integer (8, 16 and 32 bit) and single precision floating point arithmetic. It also has some unique features like using the same register array as the Vector Floating Point (VFP) unit which allows mixing SIMD and common floating point instructions.

WebKit2 - Memory consumption of Process Models vol. #1

A long time has passed since I’ve written, but lately I did some interesting memory consumption measurements on QtWebKit’s WebKit2 implementation. First, let’s talk a little about WebKit2’s process models. There are 2 process models in WebKit (more precisely, there are 3, but for now I don’t take with thread-based solutions into account): the default is the secondary process model, and we can easily switch to shared process model as well. Balazs experienced with a third one called service model which works like a classic server-client connection.

Benchmarking QtWebKit-V8 on Linux

For some time it has been possible to build and run QtWebKit on Linux using Google's V8 JavaScript engine instead of the default JavaScriptCore. I thought it would be good to see some numbers comparing the runtime performance of the two engines in the same environment and also measuring the performance of the browser bindings.

Speeding up SVG pixel filters with SMP

Some SVG filters (lighting and turbulence filters for example) execute
a huge number of pixel manipulations, which cannot be sped up by graphics
accelerators, since their algorithm is too complex. Fortunately, a different
source can provide us raw power: Simmetric Multi Processing (SMP).

QtWebKit Builder and Tester Virtual Machine

Dear QtWebKit community,

we proudly announce Q-BAT VM, the QtWebKit Builder and Tester Virtual Machine. It is a lightweight virtual machine to help your QtWebKit development. With this VM you can test your patches and you can be sure that you will get the same layout test results as if you ran them on the official Qt buildbot.

What will you get in a nutshell?

  • a VMWare virtual machine (2 CPU, 1Gb RAM, 4Gb + 10Gb HDD)
  • Debian Lenny 5.0.6 (ver. 2010-10-25 and 2011-01-26)
  • Debian Squueze 6.0.1 (ver. 2011-05-12)
  • Qt 4.6.3 with Qt Mobility API 1.0.2 (ver.

Cross-compiling QtWebKit for Windows on Linux using MinGW

In this post I'll show you how to configure and compile a MinGW toolchain for cross-compilation on Linux, then how to build Qt using this toolchain and finally compile the Qt port of WebKit from trunk.