diff options
author | Noel Grandin <noel@peralex.com> | 2021-09-06 12:46:51 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-09-09 09:06:45 +0200 |
commit | 3749d9af3745c0eaff7239e379578e4e2af89e9d (patch) | |
tree | b769195ba13d277ce1d9d6f2a97ecfe95a6f13b9 /configure.ac | |
parent | 4bf266233daa7d9ed030a20fa4f487f9f5a82379 (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.ac | 25 |
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]) |