summaryrefslogtreecommitdiffstats
path: root/core/qthelper.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-05-05 22:24:50 +0200
committerGravatar Robert C. Helling <helling@atdotde.de>2020-05-06 00:22:31 +0200
commit123937901fe9c35fcb1be471fb6ad8a9f89f1b1d (patch)
tree475940d30ac8830063e9053d52b308dfd6cf48b6 /core/qthelper.cpp
parentf37f42876260e804e4e990d608a8dcd21a141ba0 (diff)
downloadsubsurface-123937901fe9c35fcb1be471fb6ad8a9f89f1b1d.tar.gz
planner: remove Bühlmann factor cache
The Bühlmann factors were cached in a thread-safe hashmap. It seemed somewhat dubious that entering a critical section and doing a hash-lookup would be significantly faster than a simple exp() call. Indeed, in a very cache friendly test (16 entries, tight loop) calling the factor() function 32 000 000 times from a different translation units we get: - with cache: 604 ms - without cache: 266 ms Therefore, remove the cache. Given that 32 000 000 calls take only 266 ms, it appears not sensible to try to optimize this function anyway. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/qthelper.cpp')
-rw-r--r--core/qthelper.cpp25
1 files changed, 0 insertions, 25 deletions
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index bb68afcbc..e543ad1c1 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -1601,31 +1601,6 @@ char *intdup(int index)
return strdup(tmpbuf);
}
-QHash<int, double> factor_cache;
-
-QReadWriteLock factorCacheLock;
-extern "C" double cache_value(int tissue, int timestep, enum inertgas inertgas)
-{
- double value;
- int key = (timestep << 5) + (tissue << 1);
- if (inertgas == HE)
- ++key;
- factorCacheLock.lockForRead();
- value = factor_cache.value(key);
- factorCacheLock.unlock();
- return value;
-}
-
-extern "C" void cache_insert(int tissue, int timestep, enum inertgas inertgas, double value)
-{
- int key = (timestep << 5) + (tissue << 1);
- if (inertgas == HE)
- ++key;
- factorCacheLock.lockForWrite();
- factor_cache.insert(key, value);
- factorCacheLock.unlock();
-}
-
extern "C" void print_qt_versions()
{
printf("%s\n", qPrintable(QStringLiteral("built with Qt Version %1, runtime from Qt Version %2").arg(QT_VERSION_STR).arg(qVersion())));