C++ implementation of the Google logging module
Go to file
Pádraig Brady dacd296796 rate limit calls to posix_fadvise()
There can be a large kernel overhead involved in POSIX_FADV_DONTNEED.
There is no point in calling this per item logged, so rate limit
to at most once per 2MiB written.

With a simple test program that logs 100K items at WARNING level:

Before:

  $ time strace -c -e fadvise64 log.test \
    -log_dir=/dev/shm -logtofiles=true -logtostderr=false
  % time     seconds  usecs/call     calls    errors syscall
  ------ ----------- ----------- --------- --------- ----------------
  100.00   12.522509         125     99957           fadvise64
  ------ ----------- ----------- --------- --------- ----------------
  real    0m52.671s
  user    0m2.194s
  sys     0m44.022s

After:

  $ time strace -c -e fadvise64 log.test \
    -log_dir=/dev/shm -logtofiles=true -logtostderr=false

  % time     seconds  usecs/call     calls    errors syscall
  ------ ----------- ----------- --------- --------- ----------------
  100.00    0.000759         152         5           fadvise64
  ------ ----------- ----------- --------- --------- ----------------
  real    0m4.206s
  user    0m1.436s
  sys     0m3.153s

Fixes issue #84
2016-12-09 19:45:34 +00:00
cmake added CMake usage instructions 2016-01-08 15:31:10 +01:00
doc Document update: how to modify FLAGS_* in glog 2013-01-25 06:03:56 +00:00
m4 Run autoreconf on ubuntu precise 2013-01-09 13:26:44 +00:00
packages Fix for "make rpm" and "make deb" 2015-03-10 12:44:30 +09:00
src rate limit calls to posix_fadvise() 2016-12-09 19:45:34 +00:00
vsprojects Add static library project and its unittest. 2009-01-23 18:56:19 +00:00
.gitignore Fix for "make rpm" and "make deb" 2015-03-10 12:44:30 +09:00
aclocal.m4 glog: release 0.3.4 2015-03-09 11:45:07 +09:00
AUTHORS Update github.com/sergiud in AUTHORS/CONTRIBUTORS 2016-10-20 15:53:26 +09:00
ChangeLog Release glog 0.3.3 2013-02-01 06:20:46 +00:00
CMakeLists.txt cmake: allow to disable building unit tests 2016-10-19 09:32:21 +02:00
compile glog 0.1 2008-10-07 05:43:05 +00:00
config.guess Added support for PowerPC. 2016-03-21 11:28:53 +00:00
config.sub Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
configure glog: release 0.3.4 2015-03-09 11:45:07 +09:00
configure.ac glog: release 0.3.4 2015-03-09 11:45:07 +09:00
CONTRIBUTING.md Add the typical Google contributors and authors files. 2015-03-16 10:50:32 +00:00
CONTRIBUTORS Update github.com/sergiud in AUTHORS/CONTRIBUTORS 2016-10-20 15:53:26 +09:00
COPYING A bug fix for Windows: Use GetSystemTimeAsFileTime instead of GetSystemTime. SYSTEMTIME's mSecond is not a unix time but like tm.tm_sec. 2009-04-09 07:49:44 +00:00
depcomp Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
glog-config.cmake.in cmake: allow to refer to imported glog target as glog::glog 2016-01-08 14:55:58 +01:00
google-glog.sln Add static library project and its unittest. 2009-01-23 18:56:19 +00:00
INSTALL Fix regression of r23. 2009-07-08 15:38:35 +00:00
install-sh Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
libglog.pc.in Generation of pkg-config metadata file. 2009-04-10 05:49:58 +00:00
ltmain.sh Run autoreconf on ubuntu precise 2013-01-09 13:26:44 +00:00
Makefile.am glog: release 0.3.4 2015-03-09 11:45:07 +09:00
Makefile.in glog: release 0.3.4 2015-03-09 11:45:07 +09:00
missing Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
mkinstalldirs Add InstallFailureSignalHandler(). The function installs a signal handler that 2008-10-30 10:33:45 +00:00
NEWS glog 0.1 2008-10-07 05:43:05 +00:00
README glog 0.1 2008-10-07 05:43:05 +00:00
README.windows glog: release 0.3.4 2015-03-09 11:45:07 +09:00
test-driver glog: release 0.3.4 2015-03-09 11:45:07 +09:00

This repository contains a C++ implementation of the Google logging
module.  Documentation for the implementation is in doc/.

See INSTALL for (generic) installation instructions for C++: basically
   ./configure && make && make install