unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Qiantan Hong <qhong@mit.edu>
Cc: "emacs-devel@gnu.org" <emacs-devel@gnu.org>
Subject: Re: Question: estimating size of a buffer when written to file?
Date: Wed, 08 Dec 2021 12:03:07 -0500	[thread overview]
Message-ID: <jwvsfv3t4mx.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <3703D806-12C4-4EE6-ADB8-8A006D7AFC35@mit.edu> (Qiantan Hong's message of "Wed, 8 Dec 2021 15:33:06 +0000")

> Is there any reliable way to get (or conservatively estimate) 
> the size of a buffer when written to file?

How 'bout your first encode the buffer's content and then write it
instead of relying on the write to do the encoding?
This way you get to see the size trivially.

If you need this estimate faster (e.g. because you may end up not
writing the text at all depending on the result), then I think the only
way is to multiply the number of chars by the amplification factor that
is a property of the encoding (this is used in the C to allocate
a destination byte-array that's guaranteed to be large enough.  Not sure
if we currently expose it to ELisp but it would be easy to do).


        Stefan




  parent reply	other threads:[~2021-12-08 17:03 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-08 15:33 Question: estimating size of a buffer when written to file? Qiantan Hong
2021-12-08 15:52 ` Stephen Berman
2021-12-08 15:55   ` Qiantan Hong
2021-12-08 16:01     ` Stephen Berman
2021-12-08 16:29       ` Daniel Martín
2021-12-08 17:03 ` Stefan Monnier [this message]
2021-12-08 17:09   ` Qiantan Hong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvsfv3t4mx.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    --cc=qhong@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).