2001-06-06 20:40:57 +01:00
|
|
|
=================================================================
|
|
|
|
Logtalk - Object oriented extension to Prolog
|
2004-11-16 19:37:30 +00:00
|
|
|
Release 2.21.6
|
2001-06-06 20:40:57 +01:00
|
|
|
|
2004-02-09 14:18:27 +00:00
|
|
|
Copyright (c) 1998-2004 Paulo Moura. All Rights Reserved.
|
2001-06-06 20:40:57 +01:00
|
|
|
=================================================================
|
|
|
|
|
|
|
|
|
2004-06-13 19:04:28 +01:00
|
|
|
% start by loading the example:
|
|
|
|
|
|
|
|
| ?- logtalk_load(loader).
|
|
|
|
...
|
|
|
|
|
|
|
|
|
2001-06-06 20:40:57 +01:00
|
|
|
%% message_counter example
|
|
|
|
|
|
|
|
|
|
|
|
% choose an object to spy:
|
|
|
|
|
|
|
|
| ?- message_counter::set_spy_point(_, list, _, _).
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
% activate the monitor:
|
|
|
|
|
|
|
|
| ?- message_counter::activate_monitor.
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
% send some messages to the spied object; get all the answers for ancestor/1:
|
|
|
|
|
|
|
|
| ?- list::empty([]).
|
|
|
|
yes
|
|
|
|
|
|
|
|
| ?- list::member(X, [1, 2, 3]).
|
|
|
|
X = 1 ? ;
|
|
|
|
X = 2 ? ;
|
|
|
|
X = 3 ? ;
|
|
|
|
no
|
|
|
|
|
|
|
|
|
|
|
|
% print a report of the data collected by the monitor:
|
|
|
|
|
|
|
|
| ?- message_counter::report.
|
|
|
|
list
|
|
|
|
total of calls: 2
|
|
|
|
total of exits: 4
|
|
|
|
|
|
|
|
empty/1
|
|
|
|
calls: 1
|
|
|
|
exits: 1
|
|
|
|
|
|
|
|
member/2
|
|
|
|
calls: 1
|
|
|
|
exits: 3
|
|
|
|
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
% stop and reset the message counter monitor:
|
|
|
|
|
|
|
|
| ?- message_counter::stop.
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% stop_watch example
|
|
|
|
|
|
|
|
|
|
|
|
% choose a pair object/message to spy:
|
|
|
|
|
|
|
|
| ?- stop_watch::set_spy_point(_, list, length(_, _), _).
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
% activate the monitor:
|
|
|
|
|
|
|
|
| ?- stop_watch::activate_monitor.
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
% send a message to the spied object:
|
|
|
|
|
|
|
|
| ?- list::length([1, 2, 3], Length).
|
|
|
|
list <-- length([1,2,3],_277) from user
|
|
|
|
STARTING at 755.75999999999999 seconds
|
|
|
|
list <-- length([1,2,3],3) from user
|
|
|
|
ENDING at 755.69000000000005 seconds
|
|
|
|
|
|
|
|
Length = 3
|
|
|
|
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
% clean up:
|
|
|
|
|
|
|
|
| ?- stop_watch::reset_monitor.
|
|
|
|
yes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
%% timer example
|
|
|
|
|
|
|
|
|
|
|
|
% try a message 1000 times and return the average time:
|
|
|
|
|
|
|
|
| ?- timer::timer(list::length([1, 2, 3], _), 1000, Time).
|
2004-10-17 23:37:16 +01:00
|
|
|
Time = 0.00003
|
2001-06-06 20:40:57 +01:00
|
|
|
|
|
|
|
yes
|