diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-12-16 08:24:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-16 08:24:07 +0000 |
commit | 4f5281a92e1e85546f055d9b63410b207db33b33 (patch) | |
tree | 6f1b4cbbb44a491f454f71ad68216cda2c76cfc7 /webui.sh | |
parent | 86b3aa94e2d36a4f9d5ef1bb7c6ec995ff8eb517 (diff) | |
parent | c2bdbb67b66de06f1163de3f10c290213cd6bdb0 (diff) | |
download | stable-diffusion-webui-gfx803-4f5281a92e1e85546f055d9b63410b207db33b33.tar.gz stable-diffusion-webui-gfx803-4f5281a92e1e85546f055d9b63410b207db33b33.tar.bz2 stable-diffusion-webui-gfx803-4f5281a92e1e85546f055d9b63410b207db33b33.zip |
Merge pull request #14227 from kingljl/kingljl-patch-memory-leak
Long running memory leak problem
Diffstat (limited to 'webui.sh')
-rwxr-xr-x | webui.sh | 31 |
1 files changed, 24 insertions, 7 deletions
@@ -222,13 +222,30 @@ fi # Try using TCMalloc on Linux prepare_tcmalloc() { if [[ "${OSTYPE}" == "linux"* ]] && [[ -z "${NO_TCMALLOC}" ]] && [[ -z "${LD_PRELOAD}" ]]; then - TCMALLOC="$(PATH=/sbin:$PATH ldconfig -p | grep -Po "libtcmalloc(_minimal|)\.so\.\d" | head -n 1)" - if [[ ! -z "${TCMALLOC}" ]]; then - echo "Using TCMalloc: ${TCMALLOC}" - export LD_PRELOAD="${TCMALLOC}" - else - printf "\e[1m\e[31mCannot locate TCMalloc (improves CPU memory usage)\e[0m\n" - fi + # Define Tcmalloc Libs arrays + TCMALLOC_LIBS=("libtcmalloc(_minimal|)\.so\.\d" "libtcmalloc\.so\.\d") + + # Traversal array + for lib in "${TCMALLOC_LIBS[@]}" + do + #Determine which type of tcmalloc library the library supports + TCMALLOC="$(PATH=/usr/sbin:$PATH ldconfig -p | grep -P $lib | head -n 1)" + TC_INFO=(${TCMALLOC//=>/}) + if [[ ! -z "${TC_INFO}" ]]; then + echo "Using TCMalloc: ${TC_INFO}" + #Determine if the library is linked to libptthread and resolve undefined symbol: ptthread_Key_Create + if ldd ${TC_INFO[2]} | grep -q 'libpthread'; then + echo "$TC_INFO is linked with libpthread,execute LD_PRELOAD=${TC_INFO}" + export LD_PRELOAD="${TC_INFO}" + break + else + echo "$TC_INFO is not linked with libpthreadand will trigger undefined symbol: ptthread_Key_Create error" + fi + else + printf "\e[1m\e[31mCannot locate TCMalloc (improves CPU memory usage)\e[0m\n" + fi + done + fi } |