Advertisement
Guest User

Untitled

a guest
Mar 25th, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <unistd.h>
  4. #include <time.h>
  5. #include <libmemcached/memcached.h>
  6.  
  7. // compile: g++ test_memd.cpp -o test_memd -lmemcached
  8.  
  9. int main(int argc, char *argv[])
  10. {
  11.   memcached_server_st *servers = NULL;
  12.   memcached_st *memc;
  13.   memcached_return rc;
  14.   uint32_t flags;
  15.   size_t return_value_length;
  16.   const char *response;
  17.  
  18.   char const *key= "memcached_benchmark_test";
  19.   char const *value= "test_value";
  20.  
  21.   if ( argc < 2 ) {
  22.     printf("Memcached simple benchmark - set/get. \nRun as: ");
  23.     printf("%s <server_addr> <port>\n\n", argv[0]);
  24.     printf("  server_addr - memcached server hostname or ip address\n");
  25.     printf("  port - memcached port number\n\n");
  26.  
  27.     return 1;
  28.   }
  29.  
  30.   memcached_server_st *memcached_servers_parse (char *server_strings);
  31.   memc = memcached_create(NULL);
  32.  
  33.   servers = memcached_server_list_append(servers, (const char*) argv[1], atoi(argv[2]), &rc);
  34.   rc = memcached_server_push(memc, servers);
  35.  
  36.   if (rc != MEMCACHED_SUCCESS) {
  37.     fprintf(stderr,"Could not connect to the server: %s\n", memcached_strerror(memc, rc));
  38.     return 1;
  39.   }
  40.  
  41.   int max_loops = 5000000;
  42.   int loops = 0;
  43.   int mode  = 1;
  44.   time_t start_time = time(NULL);
  45.   int time_diff = 0;
  46.   int test_max_time = 10; // seconds
  47.  
  48.   printf("Starting test to the '%s:%u' server...\n\n", argv[1], atoi(argv[2]));
  49.  
  50.   for ( int i = 0; i < max_loops; i++ ) {
  51.     loops++;
  52.     time_diff = (unsigned int) (time(NULL) - start_time);
  53.     if (time_diff > test_max_time) {
  54.       break;
  55.     }
  56.  
  57.     if ( 1 == mode ) {
  58.       rc = memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);
  59.     } else {
  60.       response = memcached_get(memc, key, strlen(key),  &return_value_length, &flags, &rc);
  61.     }
  62.  
  63.     if (rc != MEMCACHED_SUCCESS) {
  64.       fprintf(stderr,"Couldn't store key: %s\n",memcached_strerror(memc, rc));
  65.       return 1;
  66.     }
  67.   }
  68.  
  69.   printf("Time taken for test: %u seconds.\n", time_diff);
  70.   printf("Requests per second: %u req/s.\n\n", (unsigned int) (loops / (time_diff + 1)));
  71.  
  72.   return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement