QMCPACK
sysutil.cpp
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2016 Jeongnim Kim and QMCPACK developers.
6 //
7 // File developed by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
8 // Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
9 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
10 // Mark Dewing, markdewing@gmail.com, University of Illinois at Urbana-Champaign
11 //
12 // File created by: Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
13 //////////////////////////////////////////////////////////////////////////////////////
14 
15 
16 #include "sysutil.h"
17 #include <string>
18 #include <sstream>
19 #include <iostream>
20 using std::string;
21 #include <time.h>
22 #include <sys/utsname.h>
23 
24 string getHostName()
25 {
26  utsname mysys;
27  uname(&mysys);
28  return std::string(mysys.nodename);
29 }
30 
32 {
33  time_t now;
34  time(&now);
35  return ctime(&now);
36 }
37 
38 string getDateAndTime(const char* format)
39 {
40  time_t now;
41  time(&now);
42  tm* now_c = localtime(&now);
43  char d[32];
44  strftime(d, 32, format, now_c);
45  return std::string(d);
46 }
47 
48 #ifdef __linux__
49 #include <sys/sysinfo.h>
50 #include <sys/resource.h>
51 #endif
52 
53 size_t freemem()
54 {
55 #ifdef __linux__
56  struct sysinfo si;
57  sysinfo(&si);
58  si.freeram += si.bufferram;
59  return si.freeram;
60 #else
61  return 0;
62 #endif
63 }
64 
65 /* returns heap memory usage in KiB */
66 size_t memusage()
67 {
68 #ifdef __linux__
69  struct rusage RU; /* heap memory usage */
70  getrusage(RUSAGE_SELF, &RU);
71  return RU.ru_maxrss;
72 #else
73  return 0;
74 #endif
75 }
string getDateAndTime()
Definition: sysutil.cpp:31
string getHostName()
< return the host name
Definition: sysutil.cpp:24
size_t memusage()
Definition: sysutil.cpp:66
size_t freemem()
Definition: sysutil.cpp:53