/usr/local/lib/swipl/library/statistics.pl
All Application Manual Name SummaryHelp

  • swipl
    • library
      • error.pl
      • debug.pl -- Print debug messages and test assertions
      • apply.pl -- Apply predicates on a list
      • lists.pl
      • broadcast.pl -- Event service
      • predicate_options.pl
      • shlib.pl
      • option.pl
      • thread_pool.pl
      • gensym.pl
      • settings.pl -- Setting management
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl -- Read utilities
      • operators.pl -- Manage operators
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl -- Examine Prolog source-files
      • record.pl -- Access compound arguments by name
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • pure_input.pl -- Pure Input from files and streams
      • solution_sequences.pl -- Modify solution sequences
      • ordsets.pl -- Ordered set manipulation
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • yall.pl -- Lambda expressions
      • sandbox.pl -- Sandboxed Prolog code
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl -- Operations on atoms
      • modules.pl -- Module utility predicates
      • occurs.pl -- Finding and counting sub-terms
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl
      • lazy_lists.pl -- Lazy list handling
      • ugraphs.pl -- Graph manipulation library
      • iostream.pl -- Utilities to deal with streams
      • url.pl -- Analysing and constructing URL
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • git.pl -- Run GIT commands
      • rbtrees.pl -- Red black trees
      • dif.pl -- The dif/2 constraint
      • charsio.pl -- I/O on Lists of Character Codes
      • prolog_stack.pl -- Examine the Prolog stack
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_clause.pl -- Get detailed source-information about a clause
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • dialect.pl -- Support multiple Prolog dialects
      • prolog_code.pl -- Utilities for reasoning about code
      • sort.pl
      • dicts.pl -- Dict utilities
      • varnumbers.pl -- Utilities for numbered terms
      • backcomp.pl -- Backward compatibility
      • system.pl -- System utilities
      • quintus.pl -- Quintus compatibility
      • base32.pl -- Base32 encoding and decoding
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • date.pl -- Process dates and times
      • heaps.pl -- heaps/priority queues
      • statistics.pl -- Get information about resource usage
        • statistics/0
        • statistics/1
        • thread_statistics/2
        • time/1
        • call_time/2
        • call_time/3
      • terms.pl -- Term manipulation
      • when.pl -- Conditional coroutining
      • thread.pl -- High level thread primitives
      • optparse.pl -- command line parsing
      • portray_text.pl -- Portray text
      • prolog_codewalk.pl -- Prolog code walker
      • listing.pl -- List programs and pretty print clauses
      • prolog_trace.pl -- Print access to predicates
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • intercept.pl -- Intercept and signal interface
      • strings.pl -- String utilities
      • persistency.pl -- Provide persistent dynamic predicates
      • macros.pl -- Macro expansion
      • exceptions.pl -- Exception classification
      • check.pl -- Consistency checking
      • help.pl -- Text based manual
      • prolog_metainference.pl -- Infer meta-predicate properties
      • qsave.pl -- Save current program as a state or executable
      • zip.pl -- Access resource ZIP archives
      • fastrw.pl -- Fast reading and writing of terms
      • shell.pl -- Elementary shell commands
      • threadutil.pl -- Interactive thread utilities
      • tables.pl -- XSB interface to tables
      • streams.pl -- Manage Prolog streams
      • hashtable.pl -- Hash tables
      • prolog_debug.pl -- User level debugging tools
      • make.pl -- Reload modified source files
      • files.pl
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • prolog_coverage.pl -- Coverage analysis tool
      • ctypes.pl -- Character code classification
      • prolog_wrap.pl -- Wrapping predicates
      • prolog_autoload.pl -- Autoload all dependencies
 call_time(:Goal, -Time:dict)
 call_time(:Goal, -Time:dict, -Result)
Call Goal as call/1, unifying Time with a dict that provides information on the resource usage. If Goal succeeds with a choice point, backtracking reports the time used to find the next answer, failure or exception. If Goal succeeds deterministically no choice point is left open. Currently Time contains the keys below. Future versions may provide additional keys.
  • wall:Seconds
  • cpu:Seconds
  • inferences:Count

call_time/2 is defined as below. Note that for call_time/2 the time is only available if Goal succeeds.

call_time(Goal, Time) :-
    call_time(Goal, Time, Result),
    call(Result).
Arguments:
Result- is one of true, false or throw(E), depending on whether or not the goal succeeded or raised an exception. Note that Result may be called using call/1 to propagate the failure or exception.