ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Philipp Gesang <pgesang@ix.urz.uni-heidelberg.de>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: why lua?
Date: Sat, 18 Dec 2010 14:06:21 +0100	[thread overview]
Message-ID: <20101218130620.GC18627@aides> (raw)
In-Reply-To: <4D0C9C8A.7060602@wxs.nl>


[-- Attachment #1.1: Type: text/plain, Size: 1595 bytes --]

On 2010-12-18 <12:35:38>, Hans Hagen wrote:
> On 18-12-2010 12:03, Philipp Gesang wrote:
> >Depending on whether you want to access the non-hashed content as
> >well you might want to use the “next” iterator instead as it’s
> >slightly faster (according to my tests, that is). You won’t get
> >around the local variable, though; I have no clue and no time to
> >check if it’s even technically feasible to iterate a hash table
> >without accessing the hashes.
> 
> indeed, for k, v in next, sometable do ... is faster as it saves one
> function call (i.e. pairs returning the next, table)
> 
> for indexed iteration using for i=1,n do ... is much faster than
> ipairs as it involves no function calls

Well, according to a quick test using “next” with hash tables has
only a *very* slight advantage (in time) over pairs. With arrays
the difference to ipairs() is much higher; in mixed arrays/hashes
it might turn out even higher.

For tables I came up with this relation (“<” meaning less
execution time than):
  while < for < repeat < next < ipairs
where “repeat … until” and “while … do … end” check if the final
index has been reached. But the difference between the three
loops is rather neglegible.

What always baffled me is that in the manual Roberto advertises
ipairs() as the iterator of choice (at least in the v.5.0 doc).
Compared to the other options using it is just, well, erratic.

Regard, Philipp


-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

[-- Attachment #1.2: Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2010-12-18 13:06 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-17 15:20 Jonas Stein
2010-12-17 21:46 ` Martin Schröder
2010-12-17 22:35 ` Philipp A.
2010-12-17 22:51   ` Hans Hagen
2010-12-18  8:35     ` luigi scarso
2010-12-17 22:48 ` Hans Hagen
2010-12-17 23:27 ` Philipp Gesang
2010-12-17 23:46   ` Hans Hagen
2010-12-18  0:50     ` Philipp A.
2010-12-18  5:56       ` Aditya Mahajan
2010-12-18 11:03       ` Philipp Gesang
2010-12-18 11:35         ` Hans Hagen
2010-12-18 13:06           ` Philipp Gesang [this message]
2010-12-18 13:20             ` Hans Hagen
2010-12-18 14:17               ` Philipp Gesang
2010-12-18 18:54                 ` Hans Hagen
2010-12-18 11:31       ` Taco Hoekwater
2010-12-18 13:04       ` Hans Hagen
2010-12-18 13:18         ` luigi scarso
2010-12-18 13:24           ` Hans Hagen

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

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

  git send-email \
    --in-reply-to=20101218130620.GC18627@aides \
    --to=pgesang@ix.urz.uni-heidelberg.de \
    --cc=ntg-context@ntg.nl \
    /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.
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 NNTP newsgroup(s).