X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fbases%2Fchrono.hxx;h=e1641e6ca1015e19e7999925175d657aaa58b95d;hb=255150e4eec79294bbd06c7c464f309b4a264960;hp=defbba98802b45703b25a2e87155dcba697a9848;hpb=f4c10bf1781a76534bb1fa293aef541aef56148b;p=modules%2Fyacs.git diff --git a/src/bases/chrono.hxx b/src/bases/chrono.hxx index defbba988..e1641e6ca 100644 --- a/src/bases/chrono.hxx +++ b/src/bases/chrono.hxx @@ -1,10 +1,35 @@ +// Copyright (C) 2006-2023 CEA, EDF +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + #ifndef _CHRONO_HXX_ #define _CHRONO_HXX_ +#include "YACSBasesExport.hxx" + #include #include #include #include +#ifdef WIN32 +#else +#include +#endif typedef struct acnt { @@ -14,7 +39,7 @@ typedef struct acnt double _ctrCumul; } cntStruct; -class counters +class YACSBASES_EXPORT counters { public: static cntStruct *_ctrs; @@ -25,11 +50,11 @@ protected: int _nbChrono; }; -class chrono +class YACSBASES_EXPORT salome_chrono { public: - chrono(int i); - ~chrono(); + salome_chrono(int i); + ~salome_chrono(); void stop(); protected: bool _run; @@ -37,10 +62,24 @@ protected: clock_t _start, _end; }; +#ifndef START_TIMING +static long tcount=0; +static long cumul; +#ifdef WIN32 +static time_t tv; +#else +static timeval tv; +#endif +#define START_TIMING gettimeofday(&tv,0);long tt0=tv.tv_usec+tv.tv_sec*1000000; +#define END_TIMING(NUMBER) \ + tcount=tcount+1;gettimeofday(&tv,0);cumul=cumul+tv.tv_usec+tv.tv_sec*1000000 -tt0; \ + if(tcount==NUMBER){ std::cerr << __FILE__<<":"<<__LINE__<<" temps CPU(mus): "<