Slicer 5.13
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qSlicerStartupFilePrefetcher::Report Struct Reference

What the prefetch did during this startup. More...

#include <Base/QTApp/qSlicerStartupFilePrefetcher.h>

Public Attributes

int AlreadyLoadedLibraryCount = 0
 
QString ApplicationHome
 
QString ApplicationName
 
QString CacheFilePath
 The list start() replayed and finish() rewrites.
 
bool Enabled = false
 
int FailedLibraryCount = 0
 
double FinishEndTimeMs = -1.0
 
double FinishStartTimeMs = -1.0
 When finish() began and ended. Their distance is what recording the list cost.
 
int InitiallyLoadedLibraryCount = 0
 
int ListedLibraryCount = 0
 
QStringList Notes
 
int PredictedLibraryCount = 0
 
qint64 PrefetchedByteCount = 0
 
int PrefetchedLibraryCount = 0
 
int QueuedLibraryCount = 0
 
int RecordedLibraryCount = 0
 Entries written back to the list for the next run, 0 if it could not be written.
 
int StartupLibraryCount = 0
 
int SystemLibraryCount = 0
 
int WorkerCount = 0
 
double WorkersFinishedTimeMs = -1.0
 When the last worker ran out of queued libraries, or -1 if some are still going.
 
double WorkersStartedTimeMs = -1.0
 

Detailed Description

What the prefetch did during this startup.

Filled in as the prefetch progresses and returned by report(). All times are milliseconds from the moment the prefetch started, which is the process entry point, so that they can be compared directly with each other; a time that has not been reached is -1. What the loader did before that point is not the prefetch's to measure, and the startup timing report gives it as its first phase.

The counts are what makes a report interpretable. Prefetching can be fast and still useless (a stale list, so PredictedLibraryCount is low), or slow and yet a large win (cold scans, so the loader was spared that time). Neither can be told from a duration alone.

This is plain data with no behavior, so that it can be copied and inspected freely; reportLines() turns it into readable text.

Definition at line 126 of file qSlicerStartupFilePrefetcher.h.

Member Data Documentation

◆ AlreadyLoadedLibraryCount

int qSlicerStartupFilePrefetcher::Report::AlreadyLoadedLibraryCount = 0

Definition at line 147 of file qSlicerStartupFilePrefetcher.h.

◆ ApplicationHome

QString qSlicerStartupFilePrefetcher::Report::ApplicationHome

Definition at line 136 of file qSlicerStartupFilePrefetcher.h.

◆ ApplicationName

QString qSlicerStartupFilePrefetcher::Report::ApplicationName

Application the list belongs to, and the directory it was installed or built into, as resolved by start() from the running executable.

Definition at line 135 of file qSlicerStartupFilePrefetcher.h.

◆ CacheFilePath

QString qSlicerStartupFilePrefetcher::Report::CacheFilePath

The list start() replayed and finish() rewrites.

See also
cacheFilePath()

Definition at line 138 of file qSlicerStartupFilePrefetcher.h.

◆ Enabled

bool qSlicerStartupFilePrefetcher::Report::Enabled = false

Whether the prefetch ran at all. False when SLICER_STARTUP_FILE_PREFETCH turned it off, when it is off by default on this platform, or when start() was never called. Notes says which.

Definition at line 131 of file qSlicerStartupFilePrefetcher.h.

◆ FailedLibraryCount

int qSlicerStartupFilePrefetcher::Report::FailedLibraryCount = 0

Entries that could not be opened, usually because the library has been removed or renamed since the list was recorded.

Definition at line 160 of file qSlicerStartupFilePrefetcher.h.

◆ FinishEndTimeMs

double qSlicerStartupFilePrefetcher::Report::FinishEndTimeMs = -1.0

Definition at line 179 of file qSlicerStartupFilePrefetcher.h.

◆ FinishStartTimeMs

double qSlicerStartupFilePrefetcher::Report::FinishStartTimeMs = -1.0

When finish() began and ended. Their distance is what recording the list cost.

Definition at line 178 of file qSlicerStartupFilePrefetcher.h.

◆ InitiallyLoadedLibraryCount

int qSlicerStartupFilePrefetcher::Report::InitiallyLoadedLibraryCount = 0

Libraries the loader had already mapped when start() ran. They cannot be anticipated by any list, so they bound what prefetching can ever cover.

Definition at line 142 of file qSlicerStartupFilePrefetcher.h.

◆ ListedLibraryCount

int qSlicerStartupFilePrefetcher::Report::ListedLibraryCount = 0

Entries read from the recorded list, and how they were dispatched: those already mapped and those in the Windows directory are skipped, the rest are queued.

Definition at line 146 of file qSlicerStartupFilePrefetcher.h.

◆ Notes

QStringList qSlicerStartupFilePrefetcher::Report::Notes

Anything worth saying that is not a number: why the prefetch was skipped, a list that could not be read or written, and so on. Empty when everything went as expected.

Definition at line 184 of file qSlicerStartupFilePrefetcher.h.

◆ PredictedLibraryCount

int qSlicerStartupFilePrefetcher::Report::PredictedLibraryCount = 0

Definition at line 168 of file qSlicerStartupFilePrefetcher.h.

◆ PrefetchedByteCount

qint64 qSlicerStartupFilePrefetcher::Report::PrefetchedByteCount = 0

Definition at line 161 of file qSlicerStartupFilePrefetcher.h.

◆ PrefetchedLibraryCount

int qSlicerStartupFilePrefetcher::Report::PrefetchedLibraryCount = 0

What the workers had done by the time the report was taken. The workers outlive finish(), so these keep growing after startup is complete.

Definition at line 157 of file qSlicerStartupFilePrefetcher.h.

◆ QueuedLibraryCount

int qSlicerStartupFilePrefetcher::Report::QueuedLibraryCount = 0

Definition at line 149 of file qSlicerStartupFilePrefetcher.h.

◆ RecordedLibraryCount

int qSlicerStartupFilePrefetcher::Report::RecordedLibraryCount = 0

Entries written back to the list for the next run, 0 if it could not be written.

Definition at line 170 of file qSlicerStartupFilePrefetcher.h.

◆ StartupLibraryCount

int qSlicerStartupFilePrefetcher::Report::StartupLibraryCount = 0

Libraries loaded between start() and finish(), that is, the ones this startup actually needed, and how many of them had been prefetched. The ratio of the two is how much of this startup the previous run managed to predict; a low ratio means the list was stale or unrelated and the prefetch cannot have helped much.

Definition at line 167 of file qSlicerStartupFilePrefetcher.h.

◆ SystemLibraryCount

int qSlicerStartupFilePrefetcher::Report::SystemLibraryCount = 0

Definition at line 148 of file qSlicerStartupFilePrefetcher.h.

◆ WorkerCount

int qSlicerStartupFilePrefetcher::Report::WorkerCount = 0

Background threads started to work through the queue, chosen from the number of cores unless SLICER_STARTUP_FILE_PREFETCH_THREADS asked for a particular number.

Definition at line 153 of file qSlicerStartupFilePrefetcher.h.

◆ WorkersFinishedTimeMs

double qSlicerStartupFilePrefetcher::Report::WorkersFinishedTimeMs = -1.0

When the last worker ran out of queued libraries, or -1 if some are still going.

Definition at line 176 of file qSlicerStartupFilePrefetcher.h.

◆ WorkersStartedTimeMs

double qSlicerStartupFilePrefetcher::Report::WorkersStartedTimeMs = -1.0

When the workers were started, which is also what reading the list cost the startup thread, the two being separated by nothing else.

Definition at line 174 of file qSlicerStartupFilePrefetcher.h.


The documentation for this struct was generated from the following file: