Program: gdcm
Module: $RCSfile: TestInline.cxx,v $
Language: C++
- Date: $Date: 2005/11/02 09:40:11 $
- Version: $Revision: 1.7 $
+ Date: $Date: 2005/11/17 17:44:24 $
+ Version: $Revision: 1.8 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
// Which CXX_FLAGS, LINKER_FLAGS, ..., must we set to see the difference?
#include "gdcmUtil.h"
-#include "gdcmDebug.h"
+#include "TestInLine.h"
#include <iostream>
#include <time.h>
else
nbLoop = 10000000;
- clock_t r1, r2;
+ //clock_t r1, r2;
struct tms tms1, tms2;
double a = 1, b = 2;
// ----------------------------------------
std::cout << "Use a macro "<< std::endl;
- r1 = times(&tms1);
+ //r1 = times(&tms1);
+ times(&tms1);
for(i = 0 ; i< nbLoop ; i++)
{
mswap (a,b);
}
- r2 = times(&tms2);
- std::cout
+ //r2 = times(&tms2);
+ times(&tms2);
+ std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
// ----------------------------------------
std::cout << "Use reference function" << std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
frswap (a,b);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
// ----------------------------------------
std::cout << "Use pointer function" << std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
fpswap (&a, &b);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
// ----------------------------------------
std::cout << "Use inline, main-defined reference function" << std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
ifrswap (a, b);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
// ----------------------------------------
std::cout << "Use inline, main-defined pointer function" << std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
ifpswap (&a, &b);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Use inline, .h defined, WITH inline keyword pointer function"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
- gdcm::Util::hifpswap (&a, &b);
+ //gdcm::Util::hifpswap (&a, &b);
+ hifpswap (&a, &b);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Use inline, .h defined, NO inline keyword pointer function"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
- gdcm::Util::hNoifpswap (&a, &b);
+ //gdcm::Util::hNoifpswap (&a, &b);
+ hNoifpswap (&a, &b);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass uint_16 param directly"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passDirect (x, y);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass uint_16 param as ref"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passRef (x, y);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass uint_16 param as ptr"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passPtr (&x, &y);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
uint32_t m =1, n=2;
std::cout << "Pass uint_32 param directly"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passDirect32 (m, n);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass uint32_t param as ref"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passRef32 (m, n);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass uint_32 param as ptr"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passPtr32 (&m, &n);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass double param directly"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passDirectDouble (dx, dy);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
+
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass double param as ref"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passRefDouble (dx, dy);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
+
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;
std::cout << "Pass double param as ptr"
<< std::endl;
- r1 = times(&tms1);
- for(i = 0 ; i< nbLoop ; i++)
+ //r1 = times(&tms1);
+ times(&tms1);
+ for(i = 0 ; i< nbLoop ; i++)
{
passPtrDouble (&dx, &dy);
}
- r2 = times(&tms2);
+ //r2 = times(&tms2);
+ times(&tms2);
+
std::cout
<< (long) ((tms2.tms_utime) - (tms1.tms_utime))
<< std::endl;