Skip to main content
← PSoXide SDK guides and examples · SDK f2fec1c301f1 · All Cargo features enabled; check feature gates before use.

SimReport

Struct SimReport 

Source
pub struct SimReport {
Show 25 fields pub ticks: u32, pub episodes: u32, pub misses: u32, pub miss_ticks: u32, pub stall_ticks: u32, pub min_slack_ticks: Option<i64>, pub min_slack_millis: i64, pub worst_miss: Option<WorstMiss>, pub needed_evictions: u32, pub reads: u32, pub seeks: u32, pub sectors_read: u64, pub wasted_sectors: u64, pub cancelled: u32, pub failed_reads: u32, pub evictions: u32, pub drive_busy_micros: u64, pub run_micros: u64, pub peak_pages: u32, pub max_fragmentation_permille: u32, pub protected_full: u32, pub pages_moved: u32, pub max_step_work: u32, pub total_work: u64, pub checksum: u32,
}
Expand description

What a simulation found.

Fields§

§ticks: u32

Ticks simulated (route length).

§episodes: u32

Times a region became needed.

§misses: u32

Episodes where the region was not resident when needed (a stall).

§miss_ticks: u32

Region-ticks needed but not resident.

§stall_ticks: u32

Ticks with at least one unmet need (the player would be held).

§min_slack_ticks: Option<i64>

Smallest slack over all episodes, in ticks: how long before it was needed the region was resident (negative: late). None without episodes.

§min_slack_millis: i64

The same in milliseconds (0 without episodes).

§worst_miss: Option<WorstMiss>

The worst miss, if any.

§needed_evictions: u32

Regions evicted while the player needed them (must be 0).

§reads: u32

Reads started on the drive.

§seeks: u32

Reads that needed a seek.

§sectors_read: u64

Sectors read.

§wasted_sectors: u64

Sectors of regions evicted before the player ever needed them.

§cancelled: u32

Reads cancelled for a demand.

§failed_reads: u32

Reads that failed.

§evictions: u32

Regions evicted.

§drive_busy_micros: u64

Microseconds the drive was busy.

§run_micros: u64

Microseconds simulated.

§peak_pages: u32

Most pages in use at once.

§max_fragmentation_permille: u32

Worst free-space fragmentation seen, in permille.

§protected_full: u32

Requests that found no room (summed over steps).

§pages_moved: u32

Pages moved by compaction.

§max_step_work: u32

Most bookkeeping work units in one step.

§total_work: u64

Work units over the run.

§checksum: u32

A fingerprint of every admission, eviction and request, for determinism checks.

Implementations§

Source§

impl SimReport

Source

pub fn drive_utilization_permille(&self) -> u32

Share of the run the drive was busy, in permille.

Trait Implementations§

Source§

impl Clone for SimReport

Source§

fn clone(&self) -> SimReport

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SimReport

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SimReport

Source§

fn default() -> SimReport

Returns the “default value” for a type. Read more
Source§

impl PartialEq for SimReport

Source§

fn eq(&self, other: &SimReport) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SimReport

Source§

impl StructuralPartialEq for SimReport

Auto Trait Implementations§

§

impl Freeze for SimReport

§

impl RefUnwindSafe for SimReport

§

impl Send for SimReport

§

impl Sync for SimReport

§

impl Unpin for SimReport

§

impl UnsafeUnpin for SimReport

§

impl UnwindSafe for SimReport

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.