<commit_before>/* $Id: benchmark.c,v 1.1 2003-12-24 16:23:43 mike Exp $
   Copyright (C) 2003
   Index Data Aps

   This file is part of the YAZ toolkit.

   See the file LICENSE.
*/

#include <stdlib.h>
#include <stdio.h>

#include <yaz/zoom.h>


int main(int argc, char **argv)
{
}<commit_msg>Option parsing.  Still no functionality. Time to stop for Christmas.<commit_after>/* $Id: benchmark.c,v 1.2 2003-12-24 16:59:12 mike Exp $
 * Copyright (C) 2003 Index Data Aps
 *
 * This file is part of the YAZ toolkit.
 *
 * See the file LICENSE.
 *
 * This is an elementary benchmarker for server performance.  It works
 * by repeatedly connecting to, seaching in and retrieving from the
 * specified server, and keeps statistics about the minimum, maximum
 * and average times for each operation.
 */

#include <stdio.h>
#include <unistd.h>

#include <yaz/zoom.h>


struct options {
    int nconnect;		/* number of connections to make */
    int nsearch;		/* number of searches on each connection */
    int npresent;		/* number of presents for each search */
    int full;			/* 1 = fetch full records, 0 = brief */
    int delay;			/* number of ms to delay between ops */
    int random;			/* if true, delay is random 0-specified */
} options = {
    3,
    3,
    3,
    0,
    1000,
    1,
};


int main(int argc, char **argv)
{
    char *host;
    int port;
    int c;

    while ((c = getopt(argc, argv, "c:s:p:fbd:r")) != -1) {
	switch (c) {
	case 'c': options.nconnect = atoi(optarg); break;
	case 's': options.nsearch = atoi(optarg); break;
	case 'p': options.npresent = atoi(optarg); break;
	case 'f': options.full = 1; break;
	case 'b': options.full = 0; break;
	case 'd': options.delay = atoi(optarg); break;
	case 'r': options.random = 1; break;
	default: goto USAGE;
	}
    }

    if (argc-optind != 2) {
    USAGE:
	fprintf(stderr, "Usage: %s [options] <host> <port>\n"
"	-c <n>	Make <n> connection to the server [default: 3]\n"
"	-s <n>	Perform <n> searches on each connection [3]\n"
"	-p <n>	Make <n> present requests after each search [3]\n"
"	-f	Fetch full records [default: brief]\n"
"	-b	Fetch brief records\n"
"	-d <n>	Delay <n> ms after each operation\n"
"	-r	Delays are random between 0 and the specified number of ms\n"
, argv[0]);
	return 1;
    }

    host = argv[optind];
    port = atoi(argv[optind+1]);

    return 0;
}
{'fraction_non_alphanumeric': 0.13938618925831203, 'fraction_numerical': 0.027706734867860187, 'mean_word_length': 2.9982964224872233, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '717800', 'n_tokens_mistral': 905, 'n_tokens_neox': 838, 'n_words': 305}