Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
High memory usage on // substitution in one situation, normal usage in other
- X-seq: zsh-workers 41131
- From: Sebastian Gniazdowski <psprint@xxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: High memory usage on // substitution in one situation, normal usage in other
- Date: Sun, 21 May 2017 09:28:19 +0200
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
Hello,
following will cause like 55 GB of VIRT memory usage (process will be killed), having RES memory at 1.8 MB, which roughly equals to ${#__text}.
local -A arr2
for (( i=1; i<=200000; i++ )); do arr2[$i]="_"; done
elems=( "${(kv@)arr2}" )
__text=${elems[*]}
echo ${#__text}
1688894
__text="${__text//(#b)([^$'\03'-$'\07'$'\013'-$'\014'$'\016'-$'\031'$'0\037']##)/${(q)match[1]}}"
Follwing will work smoothly:
arr=( ${(s::)${(r:900000::_:)empty}} )
__text=${arr[*]}
echo ${#__text}
1799999
__text="${__text//(#b)([^$'\03'-$'\07'$'\013'-$'\014'$'\016'-$'\031'$'0\037']##)/${(q)match[1]}}"
I wonder why there is a difference between those two scenarios, why VIRT raises and RES doesn't, and why VIRT rise happens?
--
Sebastian Gniazdowski
psprint /at/ zdharma.org
Messages sorted by:
Reverse Date,
Date,
Thread,
Author