request parser rewrite + added tests
Some checks failed
Docker Build & Publish / build (push) Failing after 11m2s
Some checks failed
Docker Build & Publish / build (push) Failing after 11m2s
* rewrote request parser, now more simplified and theoretically faster * added gtest and an example test to measure parser times
This commit is contained in:
parent
f962f5796d
commit
236f7399fe
5 changed files with 184 additions and 108 deletions
28
tests/speed_tests.cpp
Normal file
28
tests/speed_tests.cpp
Normal file
|
@ -0,0 +1,28 @@
|
|||
#include <gtest/gtest.h>
|
||||
#include <fstream>
|
||||
#include <chrono>
|
||||
#include "../lib/http/request.hpp"
|
||||
|
||||
|
||||
TEST(speed_tests, request_parse) {
|
||||
using std::chrono::high_resolution_clock;
|
||||
using std::chrono::duration_cast;
|
||||
using std::chrono::duration;
|
||||
using std::chrono::milliseconds;
|
||||
|
||||
std::ifstream t("./test_files/test_request.http");
|
||||
std::stringstream buffer;
|
||||
buffer << t.rdbuf();
|
||||
std::string raw_req = buffer.str();
|
||||
|
||||
auto t1 = high_resolution_clock::now();
|
||||
for(int i = 0; i < 1000000; ++i) {
|
||||
volatile anthracite::http::request req (raw_req, "0.0.0.0");
|
||||
}
|
||||
auto t2 = high_resolution_clock::now();
|
||||
|
||||
/* Getting number of milliseconds as an integer. */
|
||||
auto ms_int = duration_cast<milliseconds>(t2 - t1);
|
||||
|
||||
std::cout << "Parsed 1 Million requests in " << ms_int << "ms" << std::endl;
|
||||
}
|
13
tests/test_files/test_request.http
Normal file
13
tests/test_files/test_request.http
Normal file
|
@ -0,0 +1,13 @@
|
|||
GET /foo/bar?test=a&test2=b HTTP/1.1
|
||||
Host: example.org
|
||||
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
|
||||
Accept: */*
|
||||
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
|
||||
Accept-Encoding: gzip,deflate
|
||||
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
|
||||
Keep-Alive: 115
|
||||
Connection: keep-alive
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
X-Requested-With: XMLHttpRequest
|
||||
Referer: http://example.org/test
|
||||
Cookie: foo=bar; lorem=ipsum;
|
Loading…
Add table
Add a link
Reference in a new issue