void testSet(bool initial) { unsigned now = msTick(); bool setValue = !initial; bool clearValue = initial; const unsigned numBits = 400; const unsigned passes = 10000; for (unsigned pass=0; pass < passes; pass++) { Owned<IBitSet> bs = createThreadSafeBitSet(); testSet1(initial, bs, 0, numBits, setValue, clearValue); } unsigned elapsed = msTick()-now; fprintf(stdout, "Bit test (%u) time taken = %dms\n", initial, elapsed); now = msTick(); for (unsigned pass=0; pass < passes; pass++) { Owned<IBitSet> bs = createBitSet(); testSet1(initial, bs, 0, numBits, setValue, clearValue); } elapsed = msTick()-now; fprintf(stdout, "Bit test [thread-unsafe version] (%u) time taken = %dms\n", initial, elapsed); now = msTick(); size32_t bitSetMemSz = getBitSetMemoryRequirement(numBits+5); MemoryBuffer mb; void *mem = mb.reserveTruncate(bitSetMemSz); for (unsigned pass=0; pass < passes; pass++) { Owned<IBitSet> bs = createBitSet(bitSetMemSz, mem); testSet1(initial, bs, 0, numBits, setValue, clearValue); } elapsed = msTick()-now; fprintf(stdout, "Bit test [thread-unsafe version, fixed memory] (%u) time taken = %dms\n", initial, elapsed); }
CSmartRowBuffer(CActivityBase *_activity, IFile *_file,size32_t bufsize,IRowInterfaces *rowif) : activity(_activity), file(_file), allocator(rowif->queryRowAllocator()), serializer(rowif->queryRowSerializer()), deserializer(rowif->queryRowDeserializer()) { #ifdef _DEBUG putrecheck = false; getrecheck = false; #endif in = new ThorRowQueue; out = new ThorRowQueue; waiting = false; waitflush = false; blocksize = ((bufsize/2+0xfffff)/0x100000)*0x100000; numblocks = 0; insz = 0; eoi = false; diskfree.setown(createBitSet()); #ifdef _FULL_TRACE ActPrintLog(activity, "SmartBuffer create %x",(unsigned)(memsize_t)this); #endif }