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.
Requests per second: 1450.79 [#/sec] (mean)
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
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.
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
I 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.
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.
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.
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.