souffle  2.0.2-371-g6315b36
Public Member Functions
souffle::profile::RecursiveRuleTimingProcessor Class Reference

Recursive Rule Timing Profile Event Processor. More...

#include <EventProcessor.h>

Inheritance diagram for souffle::profile::RecursiveRuleTimingProcessor:
Inheritance graph
Collaboration diagram for souffle::profile::RecursiveRuleTimingProcessor:
Collaboration graph

Public Member Functions

void process (ProfileDatabase &db, const std::vector< std::string > &signature, va_list &args) override
 abstract interface for processing an profile event More...
 
 RecursiveRuleTimingProcessor ()
 
- Public Member Functions inherited from souffle::profile::EventProcessor
virtual ~EventProcessor ()=default
 

Detailed Description

Recursive Rule Timing Profile Event Processor.

Definition at line 243 of file EventProcessor.h.

Constructor & Destructor Documentation

◆ RecursiveRuleTimingProcessor()

souffle::profile::RecursiveRuleTimingProcessor::RecursiveRuleTimingProcessor ( )
inline

Definition at line 245 of file EventProcessor.h.

245  {"program", "relation", relation, "iteration", iteration, "recursive-rule", rule,
246  version, "maxRSS", "pre"},
247  startMaxRSS);

References iteration, relation, and rule.

Referenced by souffle::profile::NonRecursiveRuleNumberProcessor::process().

Member Function Documentation

◆ process()

void souffle::profile::RecursiveRuleTimingProcessor::process ( ProfileDatabase &  ,
const std::vector< std::string > &  signature,
va_list &   
)
inlineoverridevirtual

abstract interface for processing an profile event

Reimplemented from souffle::profile::EventProcessor.

Definition at line 248 of file EventProcessor.h.

248  {"program", "relation", relation, "iteration", iteration, "recursive-rule", rule,
249  version, "maxRSS", "post"},
250  endMaxRSS);
251  db.addTextEntry({"program", "relation", relation, "iteration", iteration, "recursive-rule", rule,
252  version, "source-locator"},
253  srcLocator);
254  db.addDurationEntry({"program", "relation", relation, "iteration", iteration, "recursive-rule", rule,
255  version, "runtime"},
256  start, end);
257  db.addSizeEntry({"program", "relation", relation, "iteration", iteration, "recursive-rule", rule,
258  version, "num-tuples"},
259  size);
260  }
262 
263 /**
264  * Recursive Rule Number Profile Event Processor
265  */
266 const class RecursiveRuleNumberProcessor : public EventProcessor {
267 public:
268  RecursiveRuleNumberProcessor() {
269  EventProcessorSingleton::instance().registerEventProcessor("@n-recursive-rule", this);
270  }
271  void process(ProfileDatabase& db, const std::vector<std::string>& signature, va_list& args) override {
272  const std::string& relation = signature[1];
273  const std::string& version = signature[2];
274  const std::string& srcLocator = signature[3];

References iteration, relation, and rule.

Referenced by souffle::profile::NonRecursiveRuleNumberProcessor::process().


The documentation for this class was generated from the following file:
TCB_SPAN_NAMESPACE_NAME::detail::size
constexpr auto size(const C &c) -> decltype(c.size())
Definition: span.h:198
souffle::profile::recursiveRuleTimingProcessor
souffle::profile::RecursiveRuleTimingProcessor recursiveRuleTimingProcessor
souffle::profile::RecursiveRuleTimingProcessor::process
void process(ProfileDatabase &db, const std::vector< std::string > &signature, va_list &args) override
abstract interface for processing an profile event
Definition: EventProcessor.h:248
relation
Relation & relation
Definition: Reader.h:130
iteration
Iteration & iteration
Definition: Reader.h:129
rule
Rule & rule
Definition: Reader.h:85
souffle::profile::EventProcessorSingleton::registerEventProcessor
void registerEventProcessor(const std::string &keyword, EventProcessor *processor)
register an event processor with its keyword
Definition: EventProcessor.h:76
souffle::profile::EventProcessorSingleton::instance
static EventProcessorSingleton & instance()
get instance
Definition: EventProcessor.h:70