Sorry, I currently have no access to linux but tried it under windows (by using the windows variant of sleep). It works perfectly for me, even for 2.1.1. Then I googled usleep and suggest that you read the usleep manpage as well. That might be the problem (the number might be too large).
Christian -- Christian Schulte, www.it.kth.se/~cschulte/ From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf Of David Przybilla Sent: Wednesday, February 25, 2009 3:06 PM To: us...@gecode.org Subject: Re: [gecode-users] another question about stats Sorry I just clicked "Answer" Button and didnt notice the email was sent to your personal email. I know it is not the latest,however I need to work on 2.1.1..sorry about the downgrade :) thank you for the fast answer.. here is the whole code, it is just one file: #include "gecode/minimodel.hh" #include "gecode/examples/support.hh" using namespace Gecode; class MiPropagador: public Gecode::UnaryPropagator<Gecode::Int::IntView,Gecode::Int::PC_INT_DOM> { public: Actor* copy(Space* home,bool share){ return new (home) MiPropagador(home,share,*this); } PropCost cost(void) const { return PC_UNARY_LO; } MiPropagador(Space* home, bool share, MiPropagador& p):Gecode::UnaryPropagator<Gecode::Int::IntView,Gecode::Int::PC_INT_DOM>(hom e,share,p){} MiPropagador(Space* home, Gecode::Int::IntView x):Gecode::UnaryPropagator<Gecode::Int::IntView,Gecode::Int::PC_INT_DOM>(hom e,x){} Gecode::ExecStatus propagate(Space *home, Gecode::ModEventDelta med){ usleep(1000000); // works on linux, it is supposed to delay execution for a second std::cout<<"The propagator has been called!"<<std::endl; GECODE_ME_CHECK(x0.gq(home,0)); return Gecode::ES_NOFIX; } }; Gecode::ExecStatus positiva(Space* home,Gecode::Int::IntView x) { (void) new (home) MiPropagador(home,x); return Gecode::ES_OK; }; class EjemploPropagador: public Example { private: IntVarArray a; public: EjemploPropagador(const Options& opt): a(this,2,-10,10){ post(this,a[1]==a[0]+2); positiva(this,a[0]); positiva(this,a[1]); Gecode::branch(this,a,Gecode::INT_VAR_NONE,Gecode::INT_VAL_MIN ); } EjemploPropagador(bool share, EjemploPropagador& s) : Example(share,s){ a.update(this, share, s.a); } virtual Space* copy(bool share) { return new EjemploPropagador(share,*this); } virtual void print(std::ostream &os) { std::cout << "\a = " << a << std::endl; } }; int main(int argc, char** argv) { SizeOptions opt("EjemploPropagador"); opt.icl( ICL_DOM); opt.solutions ( 0); opt.parse(argc,argv); Example::run<EjemploPropagador,DFS>(opt); return 0; } The result I get is: Initial propagators: 3 branchings: 1 Summary runtime: 0.000 (0.000000 ms) solutions: 9 propagations: 54 failures: 0 clones: 8 commits: 16 peak memory: 10 KB however it takes more than 0.0ms to complete execution. Regards, David 2009/2/24 Christian Schulte <cschu...@kth.se> Actually, that is weird as in the examples also setup time is measured. But I fear you have to chip in some more detail what you do. The runtime between 1* and 2* should be roughly the same (why do you compare one old version against another old version, 2.1.1 is not the latest). But the statistics can be trusted, we use it all the time and we know that it does not deviate from the OS measures. Christian -- Christian Schulte, www.it.kth.se/~cschulte/ <http://www.it.kth.se/%7Ecschulte/> From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf Of David Przybilla Sent: Tuesday, February 24, 2009 5:24 PM To: us...@gecode.org Subject: [gecode-users] another question about stats I made a small testing sample, I made a simple propagator and some variables subscribing to it. Inside the propagate method there is a usleep line, which is supposed to delay the execution for some seconds. When I run the example, the delay is there, however when stats are shown, they say the example`s runtime was 0ms. what does "runtime" measure? am I doing anything wrong? Also, Im making performance comparisons between some programs on Gecode old versions and between the same ones on Gecode 2.1.1, I wonder whether I should measure the time on my own or just use the runtime thrown by gecode`s stats Thank you in advance!
_______________________________________________ Gecode users mailing list us...@gecode.org https://www.gecode.org/mailman/listinfo/gecode-users