Browse Source

Added example/benchmark.cc

yhirose 8 years ago
parent
commit
140e5c06fb
3 changed files with 43 additions and 7 deletions
  1. 9 6
      example/Makefile
  2. 33 0
      example/benchmark.cc
  3. 1 1
      test/Makefile

+ 9 - 6
example/Makefile

@@ -1,22 +1,25 @@
 
 CC = clang++
 CFLAGS = -std=c++14 -I..
-OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib -lssl -lcrypto
+#OPENSSL_SUPPORT = -DCPPHTTPLIB_OPENSSL_SUPPORT -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib -lssl -lcrypto
 
-all: server client hello simplesvr
+all: server client hello simplesvr benchmark
 
-server : server.cc ../httplib.h
+server : server.cc ../httplib.h Makefile
 	$(CC) -o server $(CFLAGS) server.cc $(OPENSSL_SUPPORT)
 
-client : client.cc ../httplib.h
+client : client.cc ../httplib.h Makefile
 	$(CC) -o client $(CFLAGS) client.cc $(OPENSSL_SUPPORT)
 
-hello : hello.cc ../httplib.h
+hello : hello.cc ../httplib.h Makefile
 	$(CC) -o hello $(CFLAGS) hello.cc $(OPENSSL_SUPPORT)
 
-simplesvr : simplesvr.cc ../httplib.h
+simplesvr : simplesvr.cc ../httplib.h Makefile
 	$(CC) -o simplesvr $(CFLAGS) simplesvr.cc $(OPENSSL_SUPPORT)
 
+benchmark : benchmark.cc ../httplib.h Makefile
+	$(CC) -o benchmark $(CFLAGS) benchmark.cc $(OPENSSL_SUPPORT)
+
 pem:
 	openssl genrsa 2048 > key.pem
 	openssl req -new -key key.pem | openssl x509 -days 3650 -req -signkey key.pem > cert.pem

+ 33 - 0
example/benchmark.cc

@@ -0,0 +1,33 @@
+#include <httplib.h>
+#include <chrono>
+#include <iostream>
+
+using namespace std;
+
+struct StopWatch {
+  StopWatch(const string& label) : label_(label) {
+    start_ = chrono::system_clock::now();
+  }
+  ~StopWatch() {
+    auto end = chrono::system_clock::now();
+    auto diff = end - start_;
+    auto count = chrono::duration_cast<chrono::milliseconds>(diff).count();
+    cout << label_ << ": " << count << " millisec." << endl;
+  }
+  string label_;
+  chrono::system_clock::time_point start_;
+};
+
+int main(int argc, char* argv[]) {
+  string body(1024 * 5, 'a');
+
+  httplib::Client cli("httpbin.org", 80);
+
+  for (int i = 0; i < 3; i++) {
+    StopWatch sw(to_string(i).c_str());
+    auto res = cli.post("/post", body, "application/octet-stream");
+    assert(res->status == 200);
+  }
+
+  return 0;
+}

+ 1 - 1
test/Makefile

@@ -6,7 +6,7 @@ CFLAGS = -std=c++14 -DGTEST_USE_OWN_TR1_TUPLE -I.. -I.
 all : test
 	./test
 
-test : test.cc ../httplib.h
+test : test.cc ../httplib.h Makefile
 	$(CC) -o test $(CFLAGS) test.cc gtest/gtest-all.cc gtest/gtest_main.cc $(OPENSSL_SUPPORT)
 
 pem: