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 /external | |
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 'external')
-rw-r--r-- | external/Module_external.mk | 1 | ||||
-rw-r--r-- | external/cuckoo/Makefile | 7 | ||||
-rw-r--r-- | external/cuckoo/Module_cuckoo.mk | 16 | ||||
-rw-r--r-- | external/cuckoo/README | 3 | ||||
-rw-r--r-- | external/cuckoo/UnpackedTarball_cuckoo.mk | 18 |
5 files changed, 45 insertions, 0 deletions
diff --git a/external/Module_external.mk b/external/Module_external.mk index 4566d825301c..3de6f9cdd63f 100644 --- a/external/Module_external.mk +++ b/external/Module_external.mk @@ -104,6 +104,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ $(call gb_Helper_optional,XSLTML,xsltml) \ $(call gb_Helper_optional,ZLIB,zlib) \ $(call gb_Helper_optional,ZMF,libzmf) \ + $(call gb_Helper_optional,CUCKOO,cuckoo) \ )) # vim: set noet sw=4 ts=4: diff --git a/external/cuckoo/Makefile b/external/cuckoo/Makefile new file mode 100644 index 000000000000..e4968cf85fb6 --- /dev/null +++ b/external/cuckoo/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/external/cuckoo/Module_cuckoo.mk b/external/cuckoo/Module_cuckoo.mk new file mode 100644 index 000000000000..d2fda7b1e286 --- /dev/null +++ b/external/cuckoo/Module_cuckoo.mk @@ -0,0 +1,16 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Module_Module,cuckoo)) + +$(eval $(call gb_Module_add_targets,cuckoo,\ + UnpackedTarball_cuckoo \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/cuckoo/README b/external/cuckoo/README new file mode 100644 index 000000000000..6b8c98342173 --- /dev/null +++ b/external/cuckoo/README @@ -0,0 +1,3 @@ +A high-performance, concurrent hash table + +[https://github.com/efficient/libcuckoo]
\ No newline at end of file diff --git a/external/cuckoo/UnpackedTarball_cuckoo.mk b/external/cuckoo/UnpackedTarball_cuckoo.mk new file mode 100644 index 000000000000..1cfbcc6b882c --- /dev/null +++ b/external/cuckoo/UnpackedTarball_cuckoo.mk @@ -0,0 +1,18 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,cuckoo)) + +$(eval $(call gb_UnpackedTarball_set_tarball,cuckoo,$(CUCKOO_TARBALL))) + +$(eval $(call gb_UnpackedTarball_set_patchlevel,cuckoo,0)) + +$(eval $(call gb_UnpackedTarball_update_autoconf_configs,cuckoo)) + +# vim: set noet sw=4 ts=4: |