1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #include "stdinc.h"
- enum {
- Nblock = 300000,
- BlockSize = 8*1024,
- };
- uchar data[Nblock*VtScoreSize];
- int rflag;
- int nblock = 10000;
- int perm[Nblock];
- void
- main(int argc, char *argv[])
- {
- VtSession *z;
- int i, j, t;
- int start;
- uchar buf[BlockSize];
- srand(time(0));
- ARGBEGIN{
- case 'r':
- rflag++;
- break;
- case 'n':
- nblock = atoi(ARGF());
- break;
- }ARGEND
- for(i=0; i<nblock; i++)
- perm[i] = i;
- if(rflag) {
- for(i=0; i<nblock; i++) {
- j = nrand(nblock);
- t = perm[j];
- perm[j] = perm[i];
- perm[i] = t;
- }
- }
- if(readn(0, data, VtScoreSize*nblock) < VtScoreSize*nblock)
- sysfatal("read failed: %r");
- vtAttach();
- z = vtDial("iolaire2");
- if(z == nil)
- sysfatal("cound not connect to venti");
- if(!vtConnect(z, 0))
- vtFatal("vtConnect: %s", vtGetError());
- print("starting\n");
- start = times(0);
- if(rflag && nblock > 10000)
- nblock = 10000;
- for(i=0; i<nblock; i++) {
- if(vtRead(z, data+perm[i]*VtScoreSize, VtDataType, buf, BlockSize) < 0)
- vtFatal("vtRead failed: %d: %s", i, vtGetError());
- }
- print("time = %f\n", (times(0) - start)*0.001);
- vtClose(z);
- vtDetach();
- }
|