From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27316 invoked from network); 19 Jul 2000 09:02:20 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 19 Jul 2000 09:02:20 -0000 Received: (qmail 29362 invoked by alias); 19 Jul 2000 09:01:57 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 12309 Received: (qmail 29355 invoked from network); 19 Jul 2000 09:01:55 -0000 Date: Wed, 19 Jul 2000 04:59:10 -0400 From: Clint Adams To: zsh-workers@sunsite.auc.dk Subject: excessive memory usage? Message-ID: <20000719045910.A2446@scowler.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii User-Agent: Mutt/1.0.1i I received this bug report last week. Due to lack of time, I haven't had a chance to look into it thoroughly, but I just tried it out, and it did suck up (rather slowly) about 42 megs (temporarily) before it finally completed. I'm guessing that this happens during compadd. So is this evidence of some inefficiency or is all that memory necessary? As for the second issue, I grabbed a vera.index that is probably more recent (it has 9109 lines), and zsh happily completes from all of the 6380 unique values. I assume that his 7617->5996 effect is also from duplicate values. ----- Forwarded message ----- Hi, I have ~/.zshfunc directory in $fpath, and I made _dict file and put it there. That file contained: #compdef dict _arguments '*:dictword:_dictwords' The file _dictwords in the same directory contained: #autoload local expl dictwords dictwords=($(awk '{print $1}' /usr/share/dictd/*.index)) _wanted dictwords expl dictword \ compadd -M 'm:{a-zA-Z}={A-Za-z} r:|=*' "$@" - "$dictwords[@]" The intent was to get 'dict ' to complete words from dictd's dictionaries. I also tried this to define $dictwords: (( $+_cache_dictwords )) || \ : ${(A)_cache_dictwords:=${${(f)"$(' produced an unusable shell (^C or ^\ didn't exit), which sucked up loads of memory, 42MB at one time (and then I killed it). % awk '{print $1}' /usr/share/dictd/*.index | wc -lc 143539 1203636 1.2MB of data shouldn't take that much memory to get parsed. :) Note that it worked when I used just one smaller index file: % awk '{print $1}' /usr/share/dictd/vera.index | wc -lc 7617 35197 But, after typing 'dict ', zsh said: zsh: do you wish to see all 5996 possibilities? The array was limited to ~6000 entries? Please fix this, TIA. ----- End forwarded message -----