Skip to content

Small Libevent 2.0 Performance Test

In preparation for CodeCon, Nick and I wanted to see how HTTP performance differs between Libevent 1.4 and Libevent 2.0. HTTP is a good test case as it exercises many of the optimized components. Here is a preliminary result.

The libevent HTTP server is serving 200,000 bytes of content for each request. Apache's benchmark tool ab was used to make 15,000 requests with 40 requests happening in parallel.

  • 1.4.10:
    Requests per second: 1450.79 [#/sec] (mean)
  • 2.0:
    Requests per second: 1961.99 [#/sec] (mean)
  • 2.0 (evbuffer_add_reference):
    Requests per second: 3979.31 [#/sec] (mean)
In Libevent 2.0, the evbuffer interface was rewritten to avoid memory copies where possible. This seems to result in a 35% performance improvement. The evbuffer_add_reference() API allows external memory to be associated with an evbuffer and thus avoids another memory copy. This results in about 100% performance increase. In comparison to Libevent 1.4, this is almost 175% faster.

In the meantime, Nick is working on making IOCP available for Windows.
Categories: Hacking, Libevent, News, SpyBye
Defined tags for this entry: ,

WOOT'09 Call For Papers

WOOT is the Workshop on Offensive Technologies. This year, it's being held for the third time and the call for papers just came out. Submissions are solicited for a variety of interesting topics including:

  • Vulnerability research (software auditing, reverse engineering)
  • Exploit techniques and automation
  • Malware design and implementation (rootkits, viruses, bots, worms)

The last two years were a lot of fun and this years organizers are an eclectic bunch of well known folks. If you have anything in the works, go submit it and we will see you at the workshop.
Categories: News, SpyBye, Systrace
Defined tags for this entry: ,

Systrace 1.6g released

This release contains a number of small bug fixes:

- 32-bit compilation has been fixed
- 32-bit policies are no longer created as Linux64 with running on a 64-bit system

The source code can be downloaded here [sig].
Categories: News, Systrace
Defined tags for this entry: ,

Anvil Setup

Anvil and ForgeI got to set up the anvil today and spent a few minutes hammering hot metal. The construction for the anvil stand is from Mark Asprey's book. Joe welded the anvil stand for me and even though the feet are not the same size, it turned out to be surprisingly level. The 165 pound anvil is bolted on top of four layers of plywood. It's reasonably solid but moves a little bit when hit hard.

Categories: Hacking, News

Systrace 1.6f with 64-bit Linux ptrace support

A new version of Systrace that supports 64-bit Linux installations can be downloaded from here. The major changes are support of 64-bit Linux with ptrace as well as 32-bit binaries under a 64-bit system. Let me know if you run into any issues with this.
Categories: News, Systrace
Defined tags for this entry: , ,

Libevent 1.4.9-stable released

We just released libevent 1.4.9-stable. You can download the source from the usual place:
This release fixes a number of bugs:
  • fixed several memory leaks in the HTTP layer.
  • fixed signal handling for multi-threaded applications.
  • fixed issues with the timer cache when leaving/entering the event loop.
Check here for a more detailed change list.

Thanks to Dean McNamee, Victor Chang, Alejo Sanchez, Richard Jones, Robin Haberkorn and everyone else who reported bugs or supplied patches.
Categories: Libevent, News
Defined tags for this entry: ,