summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2021-09-06 12:46:51 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-09-09 09:06:45 +0200
commit3749d9af3745c0eaff7239e379578e4e2af89e9d (patch)
treeb769195ba13d277ce1d9d6f2a97ecfe95a6f13b9 /configure.ac
parent4bf266233daa7d9ed030a20fa4f487f9f5a82379 (diff)
tdf#130795 use concurrent hashmap in SharedStringPool
we are loading a spreadsheet in parallel here, but the parallel threads achievei very little actual concurrency because of heavy contention in the SharedStringPool mutex. So switch to a concurrent hash map. I looked at a couple of different ones (including the Folly one), and this was the one with the simplest resulting code. This takes my load time from 12.5s to 8s Change-Id: I04d6d8e11d613b510eb3bc981f3338819b7ac813 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121717 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac25
1 files changed, 25 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 3779924c6550..5f34231750af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2334,6 +2334,11 @@ AC_ARG_WITH(system-boost,
[Use boost already on system.]),,
[with_system_boost="$with_system_headers"])
+AC_ARG_WITH(system-cuckoo,
+ AS_HELP_STRING([--with-system-cuckoo],
+ [Use libcuckoo already on system.]),,
+ [with_system_cuckoo="$with_system_headers"])
+
AC_ARG_WITH(system-glm,
AS_HELP_STRING([--with-system-glm],
[Use glm already on system.]),,
@@ -10350,6 +10355,26 @@ dnl ===================================================================
libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.5 >= 1.5.0], ["-I${WORKDIR}/UnpackedTarball/mdds/include"])
dnl ===================================================================
+dnl Check for system cuckoo
+dnl ===================================================================
+AC_MSG_CHECKING([which cuckoo to use])
+if test "$with_system_cuckoo" = "yes" -o "$with_system_headers" = "yes"; then
+ AC_MSG_RESULT([external])
+ SYSTEM_CUCKOO=TRUE
+ AC_LANG_PUSH([C++])
+ AC_CHECK_HEADER([libcuckoo/cuckoohash_map.hh], [],
+ [AC_MSG_ERROR([libcuckoo/cuckoohash_map.hh not found. install cuckoo])], [])
+ AC_LANG_POP([C++])
+else
+ AC_MSG_RESULT([internal])
+ BUILD_TYPE="$BUILD_TYPE CUCKOO"
+ SYSTEM_CUCKOO=
+ CUCKOO_CFLAGS="${ISYSTEM}${WORKDIR}/UnpackedTarball/cuckoo"
+fi
+AC_SUBST([CUCKOO_CFLAGS])
+AC_SUBST([SYSTEM_CUCKOO])
+
+dnl ===================================================================
dnl Check for system glm
dnl ===================================================================
AC_MSG_CHECKING([which glm to use])