cgal/Timer/test/Timer/test_memory_sizer.C

57 lines
1.5 KiB
C

// Test program for CGAL::Memory_sizer.
//
// Sylvain Pion
#include <CGAL/Memory_sizer.h>
#include <iostream>
int main()
{
#ifdef CGAL_DONT_HAVE_MEMORY_SIZER
// Emit a warning :
bool UNTESTED_BECAUSE_MEMORY_SIZER_IS_NOT_PORTED_ON_THIS_PLATFORM;
std::cout << "WARNING : This platform does not implement Memory_sizer"
<< std::endl;
#else
typedef CGAL::Memory_sizer::size_type size_type;
CGAL::Memory_sizer mem;
size_type v0 = mem.virtual_size();
size_type r0 = mem.resident_size();
std::cout << "Virtual size = " << v0
<< " (" << (v0>>20) << " MB)" << std::endl;
std::cout << "Resident size = " << r0
<< " (" << (r0>>20) << " MB)" << std::endl;
std::cout << "Now allocating 64MB" << std::endl;
char *p = new char[64*1024*1024];
size_type v1 = mem.virtual_size();
size_type r1 = mem.resident_size();
std::cout << "Virtual size = " << v1
<< " (" << (v1>>20) << " MB)" << std::endl;
std::cout << "Resident size = " << r1
<< " (" << (r1>>20) << " MB)" << std::endl;
std::cout << "Now touching it" << std::endl;
for (int i=0; i<64*1024; ++i)
p[1024*i] = 1;
size_type v2 = mem.virtual_size();
size_type r2 = mem.resident_size();
std::cout << "Virtual size = " << v2
<< " (" << (v2>>20) << " MB)" << std::endl;
std::cout << "Resident size = " << r2
<< " (" << (r2>>20) << " MB)" << std::endl;
#endif // CGAL_DONT_HAVE_MEMORY_SIZER
return 0;
}