OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
ProcessPerf.hpp File Reference
#include "PerfTimers.hpp"
#include <atomic>
#include <optional>
#include <string_view>
#include <cstdint>
#include <unordered_set>
Include dependency graph for ProcessPerf.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::perf::ProcessPhaseName
 
class  openswmm::perf::ProcessTimer
 
struct  openswmm::perf::SigmaEvaluations
 

Namespaces

namespace  openswmm
 
namespace  openswmm::perf
 

Typedefs

using openswmm::perf::AllocationSnapshot = void (*)(std::uint64_t*, std::uint64_t*)
 

Enumerations

enum class  openswmm::perf::ProcessPhase : std::size_t {
  openswmm::perf::surface_faces ,
  openswmm::perf::surface_cells ,
  openswmm::perf::surface_rebuild ,
  openswmm::perf::surface_boundary ,
  openswmm::perf::surface_exchange ,
  openswmm::perf::surface_publish ,
  openswmm::perf::surface_species ,
  openswmm::perf::surface_species_cells ,
  openswmm::perf::surface_reactions ,
  openswmm::perf::gw_faces ,
  openswmm::perf::gw_cells ,
  openswmm::perf::gw_node_exchange ,
  openswmm::perf::gw_dt ,
  openswmm::perf::gw_infiltration ,
  openswmm::perf::gw_species ,
  openswmm::perf::gw_reactions ,
  openswmm::perf::gw_sigma_map ,
  openswmm::perf::heat_columns ,
  openswmm::perf::surface_quality ,
  openswmm::perf::runoff ,
  openswmm::perf::groundwater ,
  openswmm::perf::lid ,
  openswmm::perf::lid_nodes ,
  openswmm::perf::richards ,
  openswmm::perf::mesh_snow ,
  openswmm::perf::subcatch_snow ,
  openswmm::perf::common_source ,
  openswmm::perf::source_trial ,
  openswmm::perf::outfall ,
  openswmm::perf::source_results ,
  openswmm::perf::engine_source_results ,
  openswmm::perf::count
}
 
enum class  openswmm::perf::ProcessCounter : std::size_t {
  openswmm::perf::sigma_evaluations ,
  openswmm::perf::sigma_firings ,
  openswmm::perf::sigma_le_1 ,
  openswmm::perf::sigma_le_8 ,
  openswmm::perf::sigma_le_32 ,
  openswmm::perf::sigma_le_64 ,
  openswmm::perf::sigma_gt_64 ,
  openswmm::perf::sigma_map_refreshes ,
  openswmm::perf::water_trial_copies ,
  openswmm::perf::source_stage_copies ,
  openswmm::perf::rk2_snapshots ,
  openswmm::perf::mesh_snow_copies ,
  openswmm::perf::count
}
 

Functions

AllocationSnapshot openswmm::perf::allocation_snapshot () noexcept
 
void openswmm::perf::count (ProcessCounter counter, unsigned long long n=1) noexcept
 
unsigned long long openswmm::perf::value (ProcessCounter counter) noexcept
 
void openswmm::perf::clear_process_totals () noexcept
 
void openswmm::perf::reset_process () noexcept
 
void openswmm::perf::begin_process_model (const void *model) noexcept
 
void openswmm::perf::dump_process () noexcept
 
void openswmm::perf::end_process_model (const void *model, bool report=true) noexcept
 

Variables

constexpr std::array< ProcessPhaseName, std::size_t(ProcessPhase::count)> openswmm::perf::process_names
 
std::array< std::atomic< double >, std::size_t(ProcessPhase::count)> openswmm::perf::process_seconds {}
 
std::array< std::atomic< unsigned long long >, std::size_t(ProcessPhase::count)> openswmm::perf::process_calls {}
 
std::array< std::atomic< unsigned long long >, std::size_t(ProcessPhase::count)> openswmm::perf::process_allocations {}
 
std::array< std::atomic< unsigned long long >, std::size_t(ProcessPhase::count)> openswmm::perf::process_allocated_bytes {}
 
std::atomic< bool > openswmm::perf::process_attribution_valid {true}
 
std::mutex openswmm::perf::process_models_mutex
 
std::unordered_set< const void * > openswmm::perf::process_models
 
bool openswmm::perf::process_tracking_failed = false
 
constexpr std::array< const char *, std::size_t(ProcessCounter::count)> openswmm::perf::process_counter_names
 
std::array< std::atomic< unsigned long long >, std::size_t(ProcessCounter::count)> openswmm::perf::process_counts {}