Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
- #include <time.h>
- #include <libmemcached/memcached.h>
- // compile: g++ test_memd.cpp -o test_memd -lmemcached
- int main(int argc, char *argv[])
- {
- memcached_server_st *servers = NULL;
- memcached_st *memc;
- memcached_return rc;
- uint32_t flags;
- size_t return_value_length;
- const char *response;
- char const *key= "memcached_benchmark_test";
- char const *value= "test_value";
- if ( argc < 2 ) {
- printf("Memcached simple benchmark - set/get. \nRun as: ");
- printf("%s <server_addr> <port>\n\n", argv[0]);
- printf(" server_addr - memcached server hostname or ip address\n");
- printf(" port - memcached port number\n\n");
- return 1;
- }
- memcached_server_st *memcached_servers_parse (char *server_strings);
- memc = memcached_create(NULL);
- servers = memcached_server_list_append(servers, (const char*) argv[1], atoi(argv[2]), &rc);
- rc = memcached_server_push(memc, servers);
- if (rc != MEMCACHED_SUCCESS) {
- fprintf(stderr,"Could not connect to the server: %s\n", memcached_strerror(memc, rc));
- return 1;
- }
- int max_loops = 5000000;
- int loops = 0;
- int mode = 1;
- time_t start_time = time(NULL);
- int time_diff = 0;
- int test_max_time = 10; // seconds
- printf("Starting test to the '%s:%u' server...\n\n", argv[1], atoi(argv[2]));
- for ( int i = 0; i < max_loops; i++ ) {
- loops++;
- time_diff = (unsigned int) (time(NULL) - start_time);
- if (time_diff > test_max_time) {
- break;
- }
- if ( 1 == mode ) {
- rc = memcached_set(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);
- } else {
- response = memcached_get(memc, key, strlen(key), &return_value_length, &flags, &rc);
- }
- if (rc != MEMCACHED_SUCCESS) {
- fprintf(stderr,"Couldn't store key: %s\n",memcached_strerror(memc, rc));
- return 1;
- }
- }
- printf("Time taken for test: %u seconds.\n", time_diff);
- printf("Requests per second: %u req/s.\n\n", (unsigned int) (loops / (time_diff + 1)));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement