From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.help Subject: Re: Does network data really cons strings? Date: Tue, 13 Jan 2004 09:58:16 -0700 Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Message-ID: <400423A8.5090306@yahoo.com> References: <40032235.3050709@yahoo.com> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1074015267 17982 80.91.224.253 (13 Jan 2004 17:34:27 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 13 Jan 2004 17:34:27 +0000 (UTC) Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Jan 13 18:34:19 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AgSQl-0003oA-00 for ; Tue, 13 Jan 2004 18:34:19 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AgRyy-0000MZ-Pk for geh-help-gnu-emacs@m.gmane.org; Tue, 13 Jan 2004 12:05:36 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!newsmi-us.news.garr.it!newsmi-eu.news.garr.it!NewsITBone-GARR!fu-berlin.de!uni-berlin.de!170.207.51.80!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 56 Original-NNTP-Posting-Host: 170.207.51.80 Original-X-Trace: news.uni-berlin.de 1074013099 13083434 170.207.51.80 ([82742]) User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:0.9.4.1) Gecko/20020406 Netscape6/6.2.2 X-Accept-Language: en-us Original-Xref: shelby.stanford.edu gnu.emacs.help:120052 Original-To: help-gnu-emacs@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.help:15993 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:15993 Jesper Harder wrote: > Kevin Rodgers writes: >>Jesper Harder wrote: >>>I was a bit surprised to see that network data (or any data received >>>from processes) conses Lisp strings. >>> >>>Is it just a quirk of `memory-use-counts' or is it for real? Why >>>does it need to cons Lisp strings if the data is only inserted in a >>>buffer? >> >>So that the data is available to the process filter? > > Right, it would need to cons strings if there are filters. But it > also happens when there are no filters. That'd be a nice optimization: don't bother allocating strings for processes that don't have a filter. > Hmm, I now notice that it also conses cons cells like mad: > > (let (m1 process) > (with-current-buffer (get-buffer-create " *test*") > (erase-buffer)) > (setq process (open-network-stream "test" " *test*" "news.gmane.org" 119)) > (setq m1 (memory-use-counts)) > (process-send-string process "LIST\n") > (sit-for 50) > (process-send-string process "QUIT\n") > (mapcar* '- (memory-use-counts) m1)) > > => (48055 3 0 0 509059 2 0 2063) > > (with-current-buffer " *test*" (buffer-size)) > => 252123 > > Roughly two char-cells for every byte of data received! That seems > rather excessive ... and I wonder what all those cons cells are used > for. Yikes, maybe a bug report is in order... > Emacs 20.5 seems to do _far_ better for the same data (on a faster > network connection, though): > > (4103 0 0 0 4168 0 0) -- Kevin Rodgers