Ignore:
Timestamp:
Apr 15, 2004, 12:27:11 AM (21 years ago)
Author:
bird
Message:

both.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/testcase/1023-maxfilehandles.c

    • Property cvs2svn:cvs-rev changed from 1.3 to 1.4
    r1362 r1363  
    3838    unsigned        msEnd;
    3939    unsigned        msStart;
     40    unsigned        msTotal = 0;
     41    unsigned        cFiles = 0;
     42    unsigned        cIncrements = 0;
     43    int             fStreams;
    4044    PGINFOSEG       pGIS = GETGINFOSEG();
    4145#define MAX_FHS 10000
    42 #ifdef TEST_STREAMS
    4346    static FILE    *apFiles[MAX_FHS];
    44 #else
    4547    static int      aiFiles[MAX_FHS];
    46 #endif
    4748
    4849    DosSetRelMaxFH(&lFHDelta, &cFHs);
    4950    printf("cFHs=%d\n", cFHs);
     51
     52    /* check for args */
     53    fStreams = argc >= 2;
    5054
    5155    cFHLast = cFHs;
     
    5458    {
    5559        msStart = pGIS->msecs;
    56 #ifdef TEST_STREAMS
    57         apFiles[i] = fopen(argv[argc - 1], "rb");
    58 #else
    59         aiFiles[i] = open(argv[argc - 1], O_BINARY | O_RDONLY);
    60 #endif
     60        if (fStreams)
     61            apFiles[i] = fopen(argv[argc - 1], "rb");
     62        else
     63            aiFiles[i] = open(argv[argc - 1], O_BINARY | O_RDONLY);
    6164        msEnd = pGIS->msecs;
    62 #ifdef TEST_STREAMS
    63         if (apFiles[i] == NULL)
    64 #else
    65         if (aiFiles[i] < 0)
    66 #endif
     65        if (fStreams ? apFiles[i] == NULL : aiFiles[i] < 0)
    6766        {
    6867            printf("error %d!\n", i + 1);
     
    7776        {
    7877            printf("Max FH change %i (fh=%d): %d -> %d (inc: %d ms  since last: %d ms)\n",
    79                    i + 1,
    80 #ifdef TEST_STREAMS
    81                    fileno(apFiles[i]),
    82 #else
    83                    aiFiles[i],
    84 #endif
    85                    cFHLast, cFHs,
    86                    msEnd - msStart, msStart - msLastInc);
    87             msLastInc = msEnd;
     78                   i + 1, fStreams ? fileno(apFiles[i]) : aiFiles[i],
     79                   cFHLast, cFHs, msEnd - msStart, msStart - msLastInc);
     80            /* stats */
     81            cIncrements++;
     82            msTotal += msEnd - msLastInc;
     83            msEnd = msLastInc = pGIS->msecs;
    8884        }
    8985        cFHLast = cFHs;
    9086    }
    9187
     88    msTotal += msEnd - msLastInc;
     89    cFiles = i;
     90
    9291    lFHDelta = cFHs = 0;
    9392    DosSetRelMaxFH(&lFHDelta, &cFHs);
    9493    printf("cFHs=%d\n", cFHs);
     94    printf("msTotal=%d  cIncrements=%d  cFiles=%d  i.e. %d handles per second\n",
     95           msTotal, cIncrements, cFiles, cFiles * 1000 / msTotal);
    9596
    9697    /*
     
    9899     */
    99100    msStart = pGIS->msecs;
    100     for (j = 0; j < i; j++)
    101 #ifdef TEST_STREAMS
    102         fclose(apFiles[j]);
    103 #else
    104         close(aiFiles[j]);
    105 #endif
     101    if (fStreams)
     102    {
     103        for (j = 0; j < i; j++)
     104            fclose(apFiles[j]);
     105    }
     106    else
     107    {
     108        for (j = 0; j < i; j++)
     109            close(aiFiles[j]);
     110    }
    106111    msEnd = pGIS->msecs;
    107112    printf("close of %d files took %d ms\n", j, msEnd - msStart);
Note: See TracChangeset for help on using the changeset viewer.