Home Announcements Schedule Assignments Project Reading Reviews Resources

libmicrohttpd Checkpoint 3: Timing HTTP

Due: March 12th, 2008

In this project, you will measure the time it takes to perform HTTP requests to your web server from Checkpoint 2. You will also try to improve the web server performance by modifying libmicrohttpd to use poll(), epoll(), kqueue(), or I/O signals.

Methodology

To measure the performance of libmicrohttpd, you need to use the code you wrote for Project 1 to request a page repeatedly from your web server in Project 2. Using the timing code from the first project, you can then see how long it takes for your web server to handle all the requests. You must test the following types of web servers:

Because it's difficult to determine where the bottleneck might be in the web server, you should perform several tests. First, create a small 64KB file to be transferred. Next, you should perform several measurement tests: requesting 10, 100, and 1000 files. Record the timing results from these tests. Average the results over 10 runs and calculate the standard deviation.

What to turn in

As usual, you will turn in your code via subversion. Further, you must include a text file called RESULTS which has the writeup of your results. Explain what you observed, which method performed the best, and what your conclusions are.

You must also turn in a file called TESTS which will explain how to run the tests you performed in this project. For example, if you have a testing script, this file will explain how to use it so that I can verify your results.

Grading

You will be graded on: