VSCache::CacheAction VSCache::recommendSize() { // fixme, constants pulled out of my ass int total = hits + nearMiss + farMiss; if (total == 0) return caClear; if (total < 30) { clearStats(); return caNoChange; // not enough requests to know what to do so keep it this way } bool shrink = (nearMiss == 0 && hits == 0 && ((farMiss * 10) / total >= 9)); bool grow = ((nearMiss * 10) / total >= 1); #ifdef VS_CACHE_DEBUG vsWarning("Cache (%p) stats (%s): %d %d %d %d, size: %d", (void *)this, shrink ? "shrink" : (grow ? "grow" : "keep"), total, farMiss, nearMiss, hits, maxSize); #endif if (grow) { // growing the cache would be beneficial clearStats(); return caGrow; } else if (shrink) { // probably a linear scan, no reason to waste space here clearStats(); return caShrink; } else { clearStats(); return caNoChange; // probably fine the way it is } }
CoreData::~CoreData() { if (db.isOpen()) { db.close(); } clearStats(); }
void Team::initialize() { clearStats(); // Sets mPlayerCount, mBotCount, and mRating mScore = 0; LUAW_CONSTRUCTOR_INITIALIZATIONS; }
FlexCAN::FlexCAN (uint8_t id) { uint32_t i; flexcanBase = FLEXCAN0_BASE; #if defined (INCLUDE_FLEXCAN_CAN1) if (id > 0) { flexcanBase = FLEXCAN1_BASE; } #endif // Default mask is allow everything defaultMask.flags.remote = 0; defaultMask.flags.extended = 0; defaultMask.id = 0; // set up the transmit and receive ring buffers initRingBuffer (txRing, tx_buffer, SIZE_TX_BUFFER); initRingBuffer (rxRing, rx_buffer, SIZE_RX_BUFFER); // clear any listeners for received packets for (i = 0; i < SIZE_LISTENERS; i++) { listener[i] = NULL; } // clear statistics counts clearStats (); }
AddressProfiler::AddressProfiler() { m_dataAccessTrace = new Map<Address, AccessTraceForAddress>; m_macroBlockAccessTrace = new Map<Address, AccessTraceForAddress>; m_programCounterAccessTrace = new Map<Address, AccessTraceForAddress>; m_retryProfileMap = new Map<Address, AccessTraceForAddress>; clearStats(); }
CacheProfiler::CacheProfiler(string description) : m_requestSize(-1) { m_description = description; m_requestTypeVec_ptr = new Vector<int>; m_requestTypeVec_ptr->setSize(int(GenericRequestType_NUM)); clearStats(); }
void tdoaStatsInit(tdoaStats_t* tdoaStats, uint32_t now_ms) { memset(tdoaStats, 0, sizeof(tdoaStats_t)); tdoaStats->remoteAnchorId = tdoaStats->newRemoteAnchorId = 1; tdoaStats->packetsReceivedRate = 0; tdoaStats->clockCorrectionRate = 0; tdoaStats->nextStatisticsTime = now_ms + STATS_INTERVAL; tdoaStats->previousStatisticsTime = 0; clearStats(tdoaStats); }
RepositoryProfile::RepositoryProfile ( QObject *parent ) : QObject ( parent ), curProfileName ( QApplication::translate ( "RepositoryProfile", "new profile" ) ), curUrl ( "ftp://" ), curDownloadDir ( QDir::current() ), curArchitectures ( RPM::i586 ), repositoryType ( YUM ), status ( UNKNOWN ) { clearStats(); lister = new RDPackageListerThread ( this ); connect ( lister, SIGNAL ( finished() ), this, SLOT ( threadFinished() ) ); }
LLViewerStatsRecorder::LLViewerStatsRecorder() : mObjectCacheFile(NULL), mTimer(), mStartTime(0.0), mLastSnapshotTime(0.0) { if (NULL != sInstance) { LL_ERRS() << "Attempted to create multiple instances of LLViewerStatsRecorder!" << LL_ENDL; } sInstance = this; clearStats(); }
void CAMDataDePrivate::alloc(int decoder_id, CAMReplacePolicy repl_policy, int num_sets, int blk_byte, int VLB_num_sets) { m_decoder_id = decoder_id; m_repl_policy = repl_policy; m_num_sets = num_sets; assert(is_power2(blk_byte)); m_blk_byte = blk_byte; clearStats(); assert(num_sets > 0); m_buf_alloc = true; }
void SedaStatsStage::manageEvent(StageEvent *event) { #if SEDASTATS_MANAGE CollectStatsRequest* collectStatsReq; ClearStatsRequest* clearStatsReq; EnableStatsCollectionRequest* enableStatsReq; DisableStatsCollectionRequest* disableStatsReq; //Handle the other commEvents sent MgmtEvent* mev = dynamic_cast<MgmtEvent*>(event); ASSERT(mev, "Expected management event."); Request* request = mev->getRequest(); if (NULL != (collectStatsReq = dynamic_cast<CollectStatsRequest*> (request))){ LOG_ERROR( "%s", "CollectStatsReq received"); dumpStats(event); return; } else if (NULL != (clearStatsReq = dynamic_cast<ClearStatsRequest*>(request))){ LOG_ERROR( "%s", "clear stats received"); clearStats(event); } else if (NULL != (enableStatsReq = dynamic_cast<EnableStatsCollectionRequest*>(request))){ LOG_ERROR( "%s", "Enable stats received"); enableCategory(event); } else if (NULL != (disableStatsReq = dynamic_cast<DisableStatsCollectionRequest*>(request))){ LOG_ERROR( "%s", "Disable stats received"); disableCategory(event); } else { TRCERR(CtgLog|CtgTrace, "%s", "Unknown event type in handleEvent"); } #endif }
void tdoaStatsUpdate(tdoaStats_t* tdoaStats, uint32_t now_ms) { if (now_ms > tdoaStats->nextStatisticsTime) { float interval = now_ms - tdoaStats->previousStatisticsTime; if (interval > 0.0f) { tdoaStats->packetsReceivedRate = (uint16_t)(1000.0f * tdoaStats->packetsReceived / interval); tdoaStats->packetsToEstimatorRate = (uint16_t)(1000.0f * tdoaStats->packetsToEstimator / interval); tdoaStats->clockCorrectionRate = (uint16_t)(1000.0f * tdoaStats->clockCorrectionCount / interval); tdoaStats->contextHitRate = (uint16_t)(1000.0f * tdoaStats->contextHitCount / interval); tdoaStats->contextMissRate = (uint16_t)(1000.0f * tdoaStats->contextMissCount / interval); tdoaStats->suitableDataFoundRate = (uint16_t)(1000.0f * tdoaStats->suitableDataFound / interval); tdoaStats->timeIsGoodRate = (uint16_t)(1000.0f * tdoaStats->timeIsGood / interval); } if (tdoaStats->anchorId != tdoaStats->newAnchorId) { tdoaStats->anchorId = tdoaStats->newAnchorId; // Reset anchor stats tdoaStats->clockCorrection = 0.0; tdoaStats->tof = 0; tdoaStats->tdoa = 0; } if (tdoaStats->remoteAnchorId != tdoaStats->newRemoteAnchorId) { tdoaStats->remoteAnchorId = tdoaStats->newRemoteAnchorId; // Reset remote anchor stats tdoaStats->tof = 0; tdoaStats->tdoa = 0; } clearStats(tdoaStats); tdoaStats->previousStatisticsTime = now_ms; tdoaStats->nextStatisticsTime = now_ms + STATS_INTERVAL; } }
void LLViewerStatsRecorder::writeToLog( F32 interval ) { size_t data_size = 0; F64 delta_time = LLTimer::getTotalSeconds() - mLastSnapshotTime; S32 total_objects = mObjectCacheHitCount + mObjectCacheMissCrcCount + mObjectCacheMissFullCount + mObjectFullUpdates + mObjectTerseUpdates + mObjectCacheMissRequests + mObjectCacheMissResponses + mObjectCacheUpdateDupes + mObjectCacheUpdateChanges + mObjectCacheUpdateAdds + mObjectCacheUpdateReplacements + mObjectUpdateFailures; if ( delta_time < interval || total_objects == 0) return; mLastSnapshotTime = LLTimer::getTotalSeconds(); LL_DEBUGS() << "ILX: " << mObjectCacheHitCount << " hits, " << mObjectCacheMissFullCount << " full misses, " << mObjectCacheMissCrcCount << " crc misses, " << mObjectFullUpdates << " full updates, " << mObjectTerseUpdates << " terse updates, " << mObjectCacheMissRequests << " cache miss requests, " << mObjectCacheMissResponses << " cache miss responses, " << mObjectCacheUpdateDupes << " cache update dupes, " << mObjectCacheUpdateChanges << " cache update changes, " << mObjectCacheUpdateAdds << " cache update adds, " << mObjectCacheUpdateReplacements << " cache update replacements, " << mObjectUpdateFailures << " update failures" << LL_ENDL; if (mObjectCacheFile == NULL) { mStartTime = LLTimer::getTotalSeconds(); mObjectCacheFile = LLFile::fopen(STATS_FILE_NAME, "wb"); if (mObjectCacheFile) { // Write column headers std::ostringstream data_msg; data_msg << "EventTime(ms)\t" << "Cache Hits\t" << "Cache Full Misses\t" << "Cache Crc Misses\t" << "Full Updates\t" << "Terse Updates\t" << "Cache Miss Requests\t" << "Cache Miss Responses\t" << "Cache Update Dupes\t" << "Cache Update Changes\t" << "Cache Update Adds\t" << "Cache Update Replacements\t" << "Update Failures\t" << "Cache Hits bps\t" << "Cache Full Misses bps\t" << "Cache Crc Misses bps\t" << "Full Updates bps\t" << "Terse Updates bps\t" << "Cache Miss Responses bps\t" << "Texture Fetch bps\t" << "\n"; data_size = data_msg.str().size(); if (fwrite(data_msg.str().c_str(), 1, data_size, mObjectCacheFile ) != data_size) { LL_WARNS() << "failed to write full headers to " << STATS_FILE_NAME << LL_ENDL; } } else { //LL_WARNS() << "Couldn't open " << STATS_FILE_NAME << " for logging." << LL_ENDL; return; } } std::ostringstream data_msg; data_msg << getTimeSinceStart() << "\t " << mObjectCacheHitCount << "\t" << mObjectCacheMissFullCount << "\t" << mObjectCacheMissCrcCount << "\t" << mObjectFullUpdates << "\t" << mObjectTerseUpdates << "\t" << mObjectCacheMissRequests << "\t" << mObjectCacheMissResponses << "\t" << mObjectCacheUpdateDupes << "\t" << mObjectCacheUpdateChanges << "\t" << mObjectCacheUpdateAdds << "\t" << mObjectCacheUpdateReplacements << "\t" << mObjectUpdateFailures << "\t" << (mObjectCacheHitSize * 8 / delta_time) << "\t" << (mObjectCacheMissFullSize * 8 / delta_time) << "\t" << (mObjectCacheMissCrcSize * 8 / delta_time) << "\t" << (mObjectFullUpdatesSize * 8 / delta_time) << "\t" << (mObjectTerseUpdatesSize * 8 / delta_time) << "\t" << (mObjectCacheMissResponsesSize * 8 / delta_time) << "\t" << (mTextureFetchSize * 8 / delta_time) << "\n"; data_size = data_msg.str().size(); if ( data_size != fwrite(data_msg.str().c_str(), 1, data_size, mObjectCacheFile )) { LL_WARNS() << "Unable to write complete column data to " << STATS_FILE_NAME << LL_ENDL; } clearStats(); }
// Constructors Dram::Dram(AbstractChip* chip_ptr, int version) { //CHUNGO! ptrDram[version]= this; //MSHR demandMSHRSizeCt=32; prefMSHRSizeCt=32; lastL2BankServed=0; prefetchQueueSizeCt=8; demandQueueSizeCt=32; //el patr—n de acierto est‡ definido como 4+4+7+4+4 readHitBankBusyMask = 0x7F00; // 0111 1111 0000 0000 - 7^1 4^0 4^0 writeHitBankBusyMask = 0x7F00; // 0111 1111 0000 0000 - 7^1 4^0 4^0 if(g_CYCLES_BUS_DRAM==1) readHitBusBusyMask = 0x80000; // 1000 0000 0000 0000 0000 - 4^1 19^0 else if(g_CYCLES_BUS_DRAM==4) { readHitBusBusyMask = 0x78000; // 0111 1000 0000 0000 0000 - 4^1 15^0 writeHitBusBusyMask = 0xf00; // 1111 0000 0000 - } else cerr << "HAY un error grave en g_CYCLES_BUS_DRAM" << endl; //el patr—n de fallo est‡ definido como 4+4+7+8+7+4+4 readMissBankBusyMask = 0x3FFFFF00; // 0011 1111 1111 1111 1111 1111 0000 0000 - 22^1 8^0 writeMissBankBusyMask = 0x3FFFFF00; // 0011 1111 1111 1111 1111 1111 0000 0000 - 22^1 8^0 if(g_CYCLES_BUS_DRAM==1) readMissBusBusyMask = 0x400000000; // 0100 0000 0000 0000 0000 0000 0000 0000 0000 - 4^1 34^0 //para ocupar el bus 1 ciclo else if(g_CYCLES_BUS_DRAM==4) { readMissBusBusyMask = 0x3C0000000; // 0011 1100 0000 0000 0000 0000 0000 0000 0000 - 4^1 30^0 writeMissBusBusyMask = 0xf000000; // 1111 0000 0000 0000 0000 0000 0000 - 4^1 34^0 } else cerr << "HAY un error grave en g_CYCLES_BUS_DRAM" << endl; m_version=version; numOfBanks=16; logNumOfBanks=4; m_chip_ptr=chip_ptr; banks.setSize(numOfBanks); for(int i=0; i<numOfBanks; i++) { banks[i].bankBusyBitmap=0; banks[i].busy=false; banks[i].scheduled=false; } lastBankUsed=0; srand(version); //stats cyclesBusBusyPerProc.setSize(RubyConfig::numberOfProcsPerChip()); cyclesBusBusyRatioPerProc.setSize(RubyConfig::numberOfProcsPerChip()); numRequestsQueued.setSize(numOfBanks); numDemandsQueued.setSize(numOfBanks); numPrefetchsQueued.setSize(numOfBanks); numRequestsServed.setSize(numOfBanks); numDemandsServed.setSize(numOfBanks); numPrefetchsServed.setSize(numOfBanks); numPrefetchPageHits.setSize(numOfBanks); numDemandPageHits.setSize(numOfBanks); cyclesDemandService.setSize(numOfBanks); cyclesPrefetchService.setSize(numOfBanks); avgLatDemandService.setSize(numOfBanks); avgLatPrefetchService.setSize(numOfBanks); avgLatService.setSize(numOfBanks); demandPageHitRatio.setSize(numOfBanks); prefetchPageHitRatio.setSize(numOfBanks); pageHitRatio.setSize(numOfBanks); numSecondMissesServed.setSize(numOfBanks); numSecondMissPageHits.setSize(numOfBanks); secondMissPageHitRatio.setSize(numOfBanks); latDemandMin.setSize(numOfBanks); latDemandMax.setSize(numOfBanks); latPrefetchMin.setSize(numOfBanks); latPrefetchMax.setSize(numOfBanks); medDemandQueueSize.setSize(numOfBanks); medPrefetchQueueSize.setSize(numOfBanks); maxDemandQueueSize.setSize(numOfBanks); maxPrefetchQueueSize.setSize(numOfBanks); //PattsMetrics coresQueued.setSize(numOfBanks); for(int i=0; i<numOfBanks; i++) coresQueued[i].setSize(RubyConfig::numberOfProcsPerChip()); BWC.setSize(numOfBanks); BWNO.setSize(numOfBanks); //inicializamos stats clearStats(); //prefMSHR.setSize(0); //demandMSHR.setSize(0); if(!g_QUICK_MEM) g_eventQueue_ptr->scheduleEvent(this, 1); }
/// resets the Reactor to its initial state virtual void reset(void) { clearStats(); }
int main(int argc, char **argv){ // int fd=0; int ans=0, mapKick=0; int kk=0; /* Shared memory creation and attachment the segment number is stored in lnptr->pid */ mapKick = mmapSetup(); if (mapKick == -1) { printf(" Error on setting up memory map ... exiting \n"); return 0; } /* Scroll through options */ while (ans != 100){ menu(); ans = scan2int(); // scanf ("%i", &ans); // read in ans (pointer is indicated) if (ans < 0 || ans > 100) ans = 1; // give status in response if (mtcptr->com0 == 100){ printf("kick-u3 must have received an exit command from another kick-read program so this program is ending too!\n"); ans=100; } switch (ans){ case 0: // end program but not deg-u3 ans=100; break; case 1: // status mtcptr->com0 = 0; break; case 2: // run pulsing mtcptr->onoff = 1; mtcptr->com0 = 0; break; case 3: // stop pulsing mtcptr->onoff = 0; mtcptr->com0 = 0; break; case 4: // continuous beam mtcptr->onoff = 0; mtcptr->com0 = 3; break; case 5: // stop beam mtcptr->onoff = 0; mtcptr->com0 = 2; break; case 6: // move MTC mtcptr->onoff = 0; mtcptr->com0 = 6; break; case 7: // set parameters kk = parameters(); if (kk == 0) { mtcptr->com0 = 7; // mode and parameters changed so load Arrays must be called mtcptr->com1 = 1; // mode and parameters changed so kick-mon must be told } break; case 8: // clear stats clearStats(); break; case 9: // reset mtc faults mtcptr->tapeBreak = 0; mtcptr->tapeFault = 0; mtcptr->com2 = 0; break; case 10: // laser calibrator on mtcptr->onoff = 0; mtcptr->com0 = 4; break; case 11: // all LJ off mtcptr->onoff = 0; mtcptr->com0 = 3; break; case 99: // help help(); break; case 100: // End ALL deg-u3 programs by breaking out of while statement ans = 100; //send end command to main program mtcptr->onoff=0; mtcptr->com0 = 100; break; default: // Do nothing and go back to the list of options ans = 0; break; } } /* Ending the program so release the memory map and close file */ if (munmap(mtcptr, sizeof (struct mtc*)) == -1) { perror("Error un-mapping the file"); } close(mapKick); printf(" File closed and file unmapped \n"); return (0); }
CacheProfiler::CacheProfiler(string description) : m_requestSize(-1) { m_description = description; m_requestTypeVec_ptr = new Vector<int>; m_requestTypeVec_ptr->setSize(int(GenericRequestType_NUM)); // m_misses=new vector<int64>; // m_misses_ratio=new vector <double>; //misses_per_instruction= new vector <double>; misses_per_instruction.setSize(RubyConfig::numberOfProcessors()); // m_demand_misses= new vector <int64> ; m_demand_misses.setSize(RubyConfig::numberOfProcessors()); //m_prefetches= new vector <int64>; m_prefetches.setSize(RubyConfig::numberOfProcessors()); //m_sw_prefetches= new vector <int64>; m_sw_prefetches.setSize(RubyConfig::numberOfProcessors()); //m_hw_prefetches= new vector <int64>; m_hw_prefetches.setSize(RubyConfig::numberOfProcessors()); //JORGE //m_accesos_user= new vector <int64>; m_accesos_user.setSize(RubyConfig::numberOfProcessors()); //m_accesos_super= new vector <int64>; m_accesos_super.setSize(RubyConfig::numberOfProcessors()); m_misses_super.setSize(RubyConfig::numberOfProcessors()); m_misses_user.setSize(RubyConfig::numberOfProcessors()); m_dataMisses_super.setSize(RubyConfig::numberOfProcessors()); m_dataMisses_user.setSize(RubyConfig::numberOfProcessors()); //m_total_accesos= new vector <int64>; m_total_accesos.setSize(RubyConfig::numberOfProcessors()); m_l2_total_accesos.setSize(RubyConfig::numberOfProcessors()); m_l15_total_accesos.setSize(RubyConfig::numberOfProcessors()); //m_l2_accesos_user= new vector <int64>; m_l15_accesos_user.setSize(RubyConfig::numberOfProcessors()); m_l2_accesos_user.setSize(RubyConfig::numberOfProcessors()); //m_l2_accesos_super= new vector <int64>; m_l15_accesos_super.setSize(RubyConfig::numberOfProcessors()); m_l2_accesos_super.setSize(RubyConfig::numberOfProcessors()); //m_accesos_user_ratio= new vector <double>; m_accesos_user_ratio.setSize(RubyConfig::numberOfProcessors()); m_l15_accesos_user_ratio.setSize(RubyConfig::numberOfProcessors()); m_l2_accesos_user_ratio.setSize(RubyConfig::numberOfProcessors()); //m_accesos_super_ratio= new vector <double>; m_accesos_super_ratio.setSize(RubyConfig::numberOfProcessors()); m_l15_accesos_super_ratio.setSize(RubyConfig::numberOfProcessors()); m_l2_accesos_super_ratio.setSize(RubyConfig::numberOfProcessors()); m_loads_user.setSize(RubyConfig::numberOfProcessors()); m_loads_super.setSize(RubyConfig::numberOfProcessors()); m_stores_user.setSize(RubyConfig::numberOfProcessors()); m_stores_super.setSize(RubyConfig::numberOfProcessors()); m_pref_inv.setSize(RubyConfig::numberOfProcessors()); m_misses_ratio.setSize(RubyConfig::numberOfProcessors()); m_l15_misses_ratio.setSize(RubyConfig::numberOfProcessors()); m_l2_misses_ratio.setSize(RubyConfig::numberOfProcessors()); m_misses_user.setSize(RubyConfig::numberOfProcessors()); m_misses_super.setSize(RubyConfig::numberOfProcessors()); m_dataMisses_user.setSize(RubyConfig::numberOfProcessors()); m_dataMisses_super.setSize(RubyConfig::numberOfProcessors()); m_miss_user_ratio.setSize(RubyConfig::numberOfProcessors()); m_miss_super_ratio.setSize(RubyConfig::numberOfProcessors()); m_misses.setSize(RubyConfig::numberOfProcessors()); m_dataMisses.setSize(RubyConfig::numberOfProcessors()); m_l2_misses_user.setSize(RubyConfig::numberOfProcessors()); m_l2_misses_super.setSize(RubyConfig::numberOfProcessors()); m_l2_miss_user_ratio.setSize(RubyConfig::numberOfProcessors()); m_l2_miss_super_ratio.setSize(RubyConfig::numberOfProcessors()); m_l2_total_accesos.setSize(RubyConfig::numberOfProcessors()); m_l15_misses_user.setSize(RubyConfig::numberOfProcessors()); m_l15_misses_super.setSize(RubyConfig::numberOfProcessors()); m_l15_miss_user_ratio.setSize(RubyConfig::numberOfProcessors()); m_l15_miss_super_ratio.setSize(RubyConfig::numberOfProcessors()); m_l15_total_accesos.setSize(RubyConfig::numberOfProcessors()); m_hitsTag.setSize(RubyConfig::numberOfProcessors()); m_hitsData.setSize(RubyConfig::numberOfProcessors()); m_firstInsertions.setSize(RubyConfig::numberOfProcessors()); m_perProcInstructionCount.setSize(RubyConfig::numberOfProcessors()); clearStats(); }
PreScanOutputDev::PreScanOutputDev() { clearStats(); }
void LLViewerStatsRecorder::writeToLog( F32 interval ) { F64 delta_time = LLTimer::getTotalSeconds() - mLastSnapshotTime; S32 total_objects = mObjectCacheHitCount + mObjectCacheMissCrcCount + mObjectCacheMissFullCount + mObjectFullUpdates + mObjectTerseUpdates + mObjectCacheMissRequests + mObjectCacheMissResponses + mObjectCacheUpdateDupes + mObjectCacheUpdateChanges + mObjectCacheUpdateAdds + mObjectCacheUpdateReplacements + mObjectUpdateFailures; if ( delta_time < interval || total_objects == 0) return; mLastSnapshotTime = LLTimer::getTotalSeconds(); lldebugs << "ILX: " << mObjectCacheHitCount << " hits, " << mObjectCacheMissFullCount << " full misses, " << mObjectCacheMissCrcCount << " crc misses, " << mObjectFullUpdates << " full updates, " << mObjectTerseUpdates << " terse updates, " << mObjectCacheMissRequests << " cache miss requests, " << mObjectCacheMissResponses << " cache miss responses, " << mObjectCacheUpdateDupes << " cache update dupes, " << mObjectCacheUpdateChanges << " cache update changes, " << mObjectCacheUpdateAdds << " cache update adds, " << mObjectCacheUpdateReplacements << " cache update replacements, " << mObjectUpdateFailures << " update failures" << llendl; if (mObjectCacheFile == NULL) { mStartTime = LLTimer::getTotalSeconds(); mObjectCacheFile = LLFile::fopen(STATS_FILE_NAME, "wb"); if (mObjectCacheFile) { // Write column headers std::ostringstream data_msg; data_msg << "EventTime(ms)\t" << "Cache Hits\t" << "Cache Full Misses\t" << "Cache Crc Misses\t" << "Full Updates\t" << "Terse Updates\t" << "Cache Miss Requests\t" << "Cache Miss Responses\t" << "Cache Update Dupes\t" << "Cache Update Changes\t" << "Cache Update Adds\t" << "Cache Update Replacements\t" << "Update Failures\t" << "Cache Hits bps\t" << "Cache Full Misses bps\t" << "Cache Crc Misses bps\t" << "Full Updates bps\t" << "Terse Updates bps\t" << "Cache Miss Responses bps\t" << "Texture Fetch bps\t" << "\n"; // <FS:ND> Make GCC happy about return value of fwrite not used // fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile ); size_t nWritten = fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile ); if( nWritten != data_msg.str().size() ) { llwarns << "Write truncated, tried to write " << data_msg.str().size() << " written " << nWritten << llendl; } // </FS:ND> } else { llwarns << "Couldn't open " << STATS_FILE_NAME << " for logging." << llendl; return; } } std::ostringstream data_msg; data_msg << getTimeSinceStart() << "\t " << mObjectCacheHitCount << "\t" << mObjectCacheMissFullCount << "\t" << mObjectCacheMissCrcCount << "\t" << mObjectFullUpdates << "\t" << mObjectTerseUpdates << "\t" << mObjectCacheMissRequests << "\t" << mObjectCacheMissResponses << "\t" << mObjectCacheUpdateDupes << "\t" << mObjectCacheUpdateChanges << "\t" << mObjectCacheUpdateAdds << "\t" << mObjectCacheUpdateReplacements << "\t" << mObjectUpdateFailures << "\t" << (mObjectCacheHitSize * 8 / delta_time) << "\t" << (mObjectCacheMissFullSize * 8 / delta_time) << "\t" << (mObjectCacheMissCrcSize * 8 / delta_time) << "\t" << (mObjectFullUpdatesSize * 8 / delta_time) << "\t" << (mObjectTerseUpdatesSize * 8 / delta_time) << "\t" << (mObjectCacheMissResponsesSize * 8 / delta_time) << "\t" << (mTextureFetchSize * 8 / delta_time) << "\n"; // <FS:ND> Make GCC happy about return value of fwrite not used // fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile ); size_t nWritten = fwrite(data_msg.str().c_str(), 1, data_msg.str().size(), mObjectCacheFile ); if( nWritten != data_msg.str().size() ) { llwarns << "Write truncated, tried to write " << data_msg.str().size() << " written " << nWritten << llendl; } // </FS:ND> clearStats(); }
void RepositoryProfile::computeProfileStatus() { // clear stats clearStats(); // set download size to zero so that calculate works as expected requiredDownlodSize = 0; if ( packages.size() < 1 ) { status = UNKNOWN; return; } bool allOk = true; bool allFailed = true; bool allUnknown = true; bool atLeastOneUpdate = false; bool someAvailable = false; bool someLocalAvailable = false; QHash<QString, Package>::const_iterator packageIterator = packages.begin(); for ( ; packageIterator != packages.end(); ++packageIterator ) { if ( packageIterator.value().packageStatus() == OK ) { allUnknown = false; allFailed = false; ++okPackages; } else if ( packageIterator.value().packageStatus() == FAILED ) { allOk = false; allUnknown = false; ++failedPackages; } else if ( packageIterator.value().packageStatus() == UNKNOWN ) { allOk = false; allFailed = false; ++unknownPackages; } else if ( packageIterator.value().packageStatus() == LOCALAVAIL ) { allOk = false; allFailed = false; someLocalAvailable = true; ++localAvailPackages; } else if ( packageIterator.value().packageStatus() == UPDATE ) { allOk = false; allUnknown = false; allFailed = false; atLeastOneUpdate = true; ++updatedPackages; } else if ( packageIterator.value().packageStatus() == AVAILABLE ) { allOk = false; allUnknown = false; someAvailable = true; ++availPackages; } else { allOk = false; allFailed = false; } requiredDownlodSize += getRequiredDownloadSizeForPackage ( packageIterator.value() ); } if ( atLeastOneUpdate ) status = UPDATE; else if ( allOk && !atLeastOneUpdate && !someLocalAvailable ) status = OK; else if ( someAvailable ) status = AVAILABLE; else if ( allFailed ) status = FAILED; else if ( allUnknown ) status = UNKNOWN; else if ( someLocalAvailable ) status = LOCALAVAIL; if ( requiredDownlodSize < 0 ) // could not calculate size requiredDownlodSize = -1; }
void TempStats::onEvent(BusEvent event, va_list ap) { if (event == BusEvent::CLEAR_STATS) { clearStats(); } }