Skip to content
Snippets Groups Projects
Commit b69fd48c authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

add windows code to get cpu time + relocate this in Timer.cpp

parent 554544d5
No related branches found
No related tags found
No related merge requests found
// $Id: Main.cpp,v 1.55 2006-01-30 00:40:19 geuzaine Exp $ // $Id: Main.cpp,v 1.56 2006-02-26 00:40:29 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -20,14 +20,6 @@ ...@@ -20,14 +20,6 @@
// Please report all bugs and problems to <gmsh@geuz.org>. // Please report all bugs and problems to <gmsh@geuz.org>.
#include <signal.h> #include <signal.h>
#include <sys/time.h>
#include <sys/resource.h>
#if defined(__APPLE__)
#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1
#endif
#include "ParUtil.h" #include "ParUtil.h"
#include "PluginManager.h" #include "PluginManager.h"
#include "Gmsh.h" #include "Gmsh.h"
...@@ -243,25 +235,6 @@ void Msg(int level, char *fmt, ...) ...@@ -243,25 +235,6 @@ void Msg(int level, char *fmt, ...)
exit(1); exit(1);
} }
// CPU time computation
void GetResources(long *s, long *us, long *mem)
{
static struct rusage r;
getrusage(RUSAGE_SELF, &r);
*s = (long)r.ru_utime.tv_sec;
*us = (long)r.ru_utime.tv_usec;
*mem = (long)r.ru_maxrss;
}
double Cpu(void)
{
long s, us, mem;
GetResources(&s, &us, &mem);
return (double)s + (double)us / 1.e6;
}
// interactive value dialog // interactive value dialog
double GetValue(char *text, double defaultval) double GetValue(char *text, double defaultval)
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <set> #include <set>
#include "AdaptiveViews.h" #include "AdaptiveViews.h"
#include "Plugin.h" #include "Plugin.h"
#include "Timer.h"
// A recursive effective implementation // A recursive effective implementation
......
...@@ -73,7 +73,6 @@ ...@@ -73,7 +73,6 @@
void Signal(int signum); void Signal(int signum);
void Msg(int level, char *fmt, ...); void Msg(int level, char *fmt, ...);
double Cpu(void);
void Exit(int); void Exit(int);
double GetValue(char *text, double defaultval); double GetValue(char *text, double defaultval);
bool GetBinaryAnswer(const char *question, const char *yes, const char *no, bool GetBinaryAnswer(const char *question, const char *yes, const char *no,
......
// $Id: Timer.cpp,v 1.22 2006-02-25 21:57:51 geuzaine Exp $ // $Id: Timer.cpp,v 1.23 2006-02-26 00:40:29 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -21,40 +21,68 @@ ...@@ -21,40 +21,68 @@
#if !defined(WIN32) || defined(__CYGWIN__) #if !defined(WIN32) || defined(__CYGWIN__)
#include <time.h> // FIXME: for sgi and maybe others
#include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include <time.h> // for sgi and maybe others
double GetTimeInSeconds() #include <sys/time.h>
{ #include <sys/resource.h>
struct timeval tp;
gettimeofday(&tp, (struct timezone *)0);
double t = (double)tp.tv_sec + 1.e-6 * (double)tp.tv_usec;
return t;
}
void SleepInSeconds(double s)
{
usleep((long)(1.e6 * s));
}
#else // pure windows #else // pure windows
#include "Gmsh.h"
#include <windows.h> #include <windows.h>
#endif
#if defined(__APPLE__)
#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1
#endif
double GetTimeInSeconds() double GetTimeInSeconds()
{ {
#if !defined(WIN32) || defined(__CYGWIN__)
struct timeval tp;
gettimeofday(&tp, (struct timezone *)0);
double t = (double)tp.tv_sec + 1.e-6 * (double)tp.tv_usec;
return t;
#else
FILETIME ft; FILETIME ft;
GetSystemTimeAsFileTime(&ft); GetSystemTimeAsFileTime(&ft);
double t = 1.e-7 * 4294967296. * (double)ft.dwHighDateTime + double t = 1.e-7 * 4294967296. * (double)ft.dwHighDateTime +
1.e-7 * (double)ft.dwLowDateTime; 1.e-7 * (double)ft.dwLowDateTime;
return t; return t;
#endif
} }
void SleepInSeconds(double s) void SleepInSeconds(double s)
{ {
#if !defined(WIN32) || defined(__CYGWIN__)
usleep((long)(1.e6 * s));
#else
Sleep((long)(1.e3 * s)); Sleep((long)(1.e3 * s));
#endif
} }
void GetResources(double *s, long *mem)
{
#if !defined(WIN32) || defined(__CYGWIN__)
static struct rusage r;
getrusage(RUSAGE_SELF, &r);
*s = (double)r.ru_utime.tv_sec + 1.e-6 * (double)r.ru_utime.tv_usec;
*mem = (long)r.ru_maxrss;
#else
FILETIME creation, exit, kernel, user;
if(GetProcessTimes(GetCurrentProcess(), &creation, &exit, &kernel, &user)){
*s = 1.e-7 * 4294967296. * (double)user.dwHighDateTime +
1.e-7 * (double)user.dwLowDateTime;
}
*mem = 0;
#endif #endif
}
double Cpu()
{
long mem = 0;
double s = 0.;
GetResources(&s, &mem);
return s;
}
...@@ -22,5 +22,7 @@ ...@@ -22,5 +22,7 @@
double GetTimeInSeconds(); double GetTimeInSeconds();
void SleepInSeconds(double s); void SleepInSeconds(double s);
void GetResources(double *s, long *mem);
double Cpu();
#endif #endif
// $Id: Message.cpp,v 1.70 2006-02-25 05:27:59 geuzaine Exp $ // $Id: Message.cpp,v 1.71 2006-02-26 00:40:29 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -19,19 +19,11 @@ ...@@ -19,19 +19,11 @@
// //
// Please report all bugs and problems to <gmsh@geuz.org>. // Please report all bugs and problems to <gmsh@geuz.org>.
#include <signal.h>
#if !defined(WIN32) || defined(__CYGWIN__) #if !defined(WIN32) || defined(__CYGWIN__)
#include <unistd.h> #include <unistd.h> // for unlink
#include <sys/time.h>
#include <sys/resource.h>
#endif
#if defined(__APPLE__)
#define RUSAGE_SELF 0
#define RUSAGE_CHILDREN -1
#endif #endif
#include <signal.h>
#include "Gmsh.h" #include "Gmsh.h"
#include "GmshUI.h" #include "GmshUI.h"
#include "GmshVersion.h" #include "GmshVersion.h"
...@@ -73,7 +65,7 @@ void Signal(int sig_num) ...@@ -73,7 +65,7 @@ void Signal(int sig_num)
void Debug() void Debug()
{ {
; printf("debug!\n");
} }
void Msg(int level, char *fmt, ...) void Msg(int level, char *fmt, ...)
...@@ -267,36 +259,6 @@ void Exit(int level) ...@@ -267,36 +259,6 @@ void Exit(int level)
exit(0); exit(0);
} }
// CPU time computation, etc.
void GetResources(long *s, long *us, long *mem)
{
#if !defined(WIN32) || defined(__CYGWIN__)
static struct rusage r;
getrusage(RUSAGE_SELF, &r);
*s = (long)r.ru_utime.tv_sec;
*us = (long)r.ru_utime.tv_usec;
*mem = (long)r.ru_maxrss;
#else
*s = 0;
*us = 0;
*mem = 0;
#endif
}
void PrintResources(long s, long us, long mem)
{
Msg(INFO, "cpu %ld.%ld s / mem %ld kb\n", s, us, mem);
}
double Cpu(void)
{
long s, us, mem;
GetResources(&s, &us, &mem);
return (double)s + (double)us / 1.e6;
}
double GetValue(char *text, double defaultval) double GetValue(char *text, double defaultval)
{ {
if(CTX.nopopup) if(CTX.nopopup)
......
// $Id: 3D_Mesh_Netgen.cpp,v 1.20 2006-01-29 22:53:41 geuzaine Exp $ // $Id: 3D_Mesh_Netgen.cpp,v 1.21 2006-02-26 00:40:29 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "Create.h" #include "Create.h"
#include "Numeric.h" #include "Numeric.h"
#include "Context.h" #include "Context.h"
#include "Timer.h"
extern Context_T CTX; extern Context_T CTX;
extern Mesh *THEM; extern Mesh *THEM;
......
// $Id: DiscreteSurface.cpp,v 1.35 2006-01-06 00:34:26 geuzaine Exp $ // $Id: DiscreteSurface.cpp,v 1.36 2006-02-26 00:40:29 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "Context.h" #include "Context.h"
#include "BDS.h" #include "BDS.h"
#include "PartitionMesh.h" #include "PartitionMesh.h"
#include "Timer.h"
extern Mesh *THEM; extern Mesh *THEM;
extern Context_T CTX; extern Context_T CTX;
......
// $Id: Generator.cpp,v 1.79 2006-02-25 14:20:07 geuzaine Exp $ // $Id: Generator.cpp,v 1.80 2006-02-26 00:40:30 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "OpenFile.h" #include "OpenFile.h"
#include "Views.h" #include "Views.h"
#include "PartitionMesh.h" #include "PartitionMesh.h"
#include "Timer.h"
extern Mesh *THEM; extern Mesh *THEM;
extern Context_T CTX; extern Context_T CTX;
......
// $Id: SecondOrder.cpp,v 1.35 2006-01-06 00:34:26 geuzaine Exp $ // $Id: SecondOrder.cpp,v 1.36 2006-02-26 00:40:30 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "Utils.h" #include "Utils.h"
#include "Interpolation.h" #include "Interpolation.h"
#include "Numeric.h" #include "Numeric.h"
#include "Timer.h"
extern Mesh *THEM; extern Mesh *THEM;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment