add CachedFactory, remove gcc warnings
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@722 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
8e2c06d853
commit
6f706cff82
3 changed files with 31 additions and 6 deletions
|
@ -214,7 +214,7 @@ namespace Loki
|
||||||
{
|
{
|
||||||
assert(byTime>0);
|
assert(byTime>0);
|
||||||
this->maxCreation = maxCreation;
|
this->maxCreation = maxCreation;
|
||||||
this->timeValidity = (clock_t)(byTime * CLOCKS_PER_SEC / 1000);
|
this->timeValidity = static_cast<clock_t>(byTime * CLOCKS_PER_SEC / 1000);
|
||||||
D( cout << "Setting no more than "<< maxCreation <<" creation within " << this->timeValidity <<" ms"<< endl; )
|
D( cout << "Setting no more than "<< maxCreation <<" creation within " << this->timeValidity <<" ms"<< endl; )
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -467,7 +467,7 @@ namespace Loki
|
||||||
{
|
{
|
||||||
if(m_vKeys.size()==0)
|
if(m_vKeys.size()==0)
|
||||||
throw EvictionException();
|
throw EvictionException();
|
||||||
size_type random = (size_type)((m_vKeys.size()*rand())/(int)(RAND_MAX + 1));
|
size_type random = static_cast<size_type>((m_vKeys.size()*rand())/int(RAND_MAX + 1));
|
||||||
iterator pos = m_vKeys.begin()+random;
|
iterator pos = m_vKeys.begin()+random;
|
||||||
DT& evictKey = *pos;
|
DT& evictKey = *pos;
|
||||||
remove(evictKey);
|
remove(evictKey);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[Project]
|
[Project]
|
||||||
FileName=CachedFactory.dev
|
FileName=CachedFactory.dev
|
||||||
Name=Factory
|
Name=Factory
|
||||||
UnitCount=3
|
UnitCount=5
|
||||||
Type=1
|
Type=1
|
||||||
Ver=1
|
Ver=1
|
||||||
ObjFiles=
|
ObjFiles=
|
||||||
|
@ -77,3 +77,23 @@ Priority=1000
|
||||||
OverrideBuildCmd=0
|
OverrideBuildCmd=0
|
||||||
BuildCmd=
|
BuildCmd=
|
||||||
|
|
||||||
|
[Unit4]
|
||||||
|
FileName=..\..\include\loki\Key.h
|
||||||
|
CompileCpp=1
|
||||||
|
Folder=Factory
|
||||||
|
Compile=1
|
||||||
|
Link=1
|
||||||
|
Priority=1000
|
||||||
|
OverrideBuildCmd=0
|
||||||
|
BuildCmd=
|
||||||
|
|
||||||
|
[Unit5]
|
||||||
|
FileName=..\..\include\loki\CachedFactory.h
|
||||||
|
CompileCpp=1
|
||||||
|
Folder=Factory
|
||||||
|
Compile=1
|
||||||
|
Link=1
|
||||||
|
Priority=1000
|
||||||
|
OverrideBuildCmd=0
|
||||||
|
BuildCmd=
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#define USE_SEQUENCE
|
#define USE_SEQUENCE
|
||||||
|
|
||||||
|
#include <cassert>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <loki/Factory.h>
|
#include <loki/Factory.h>
|
||||||
|
|
||||||
|
@ -12,7 +13,10 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <loki/CachedFactory.h>
|
#include <loki/CachedFactory.h>
|
||||||
#include <windows.h>
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
using std::cout;
|
using std::cout;
|
||||||
using std::cerr;
|
using std::cerr;
|
||||||
|
@ -96,7 +100,7 @@ bool unitTestCacheOverhead(int loop){
|
||||||
}
|
}
|
||||||
elapsedCache = std::clock() - start;
|
elapsedCache = std::clock() - start;
|
||||||
cout << " " << elapsedCache << " ms";
|
cout << " " << elapsedCache << " ms";
|
||||||
cout << " | average overhead per fetch : " <<(((double)(elapsedCache-elapsedNoCache)) / CLOCKS_PER_SEC * 1000 / loop) << " ms" << endl;
|
cout << " | average overhead per fetch : " <<((static_cast<double>(elapsedCache-elapsedNoCache)) / CLOCKS_PER_SEC * 1000 / loop) << " ms" << endl;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,7 +149,8 @@ std::clock_t typicalUse( Cache &CC, unsigned objectKind, unsigned maxObjectCount
|
||||||
vector< AbstractProduct* > fetched;
|
vector< AbstractProduct* > fetched;
|
||||||
fetched.reserve(maxObjectCount);
|
fetched.reserve(maxObjectCount);
|
||||||
srand(0); // initialise the pseudo random operator
|
srand(0); // initialise the pseudo random operator
|
||||||
std::clock_t start, end;
|
std::clock_t start(0);
|
||||||
|
std::clock_t end(0);
|
||||||
try{
|
try{
|
||||||
// Registering objects
|
// Registering objects
|
||||||
for(size_t i=0;i<objectKind;i++)
|
for(size_t i=0;i<objectKind;i++)
|
||||||
|
|
Loading…
Reference in a new issue