git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
To: Jacob Helwig <jacob.helwig@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
	git@vger.kernel.org, Jakub Narebski <jnareb@gmail.com>,
	Aaron Crane <git@aaroncrane.co.uk>,
	Nanako Shiraishi <nanako3@lavabit.com>
Subject: Re: [PATCHv5 3/3] gitweb: gravatar url cache
Date: Thu, 25 Jun 2009 01:31:44 +0200	[thread overview]
Message-ID: <cb7bb73a0906241631h6ad03867i796b658abc425896@mail.gmail.com> (raw)
In-Reply-To: <8c9a060906241606x281f4d33ne5e4999a50ee8128@mail.gmail.com>

On Thu, Jun 25, 2009 at 1:06 AM, Jacob Helwig<jacob.helwig@gmail.com> wrote:
> On Wed, Jun 24, 2009 at 15:46, Giuseppe
> Bilotta<giuseppe.bilotta@gmail.com> wrote:
>> On Thu, Jun 25, 2009 at 12:02 AM, Junio C Hamano<gitster@pobox.com> wrote:
>>
>>> I think the cache is placed at the wrong level (it doesn't have to be a
>>> GRavatar_url_cache, but can be a general avatar_url_cache).
>>
>> I'm not sure about it. The URL depends on email and size (can you use
>> arrays as hash keys in Perl?) , and the email part might be the same
>> but the size part might differ across separate calls (in theory; in
>> practice avatars in a view are presently all the same size; but for
>> example if we were to autodetect email addresses in commit messages,
>> we might have both single- and double- sided avatars in the same
>> page). By hashing on email+size only we would lose the benefit of
>> cache when using the same avatar at separate sizes.
>
> You could have a hash key of "$email_$size", or something similar to
> fake an array hash key.

The point is not so much the form to give to the key but rather the
fact that hashing on both means the URL has to be recomputed when the
same email appears with both sizes. Considering that (at least for
gravatars) the computational intensive part comes from the MD5 of the
email, this means a waste of cycles.

By letting the cache be per-avatar, each avatar kind can choose to
hash on whatever it needs to. But I got an idea on how to improve on
this.

-- 
Giuseppe "Oblomov" Bilotta

  reply	other threads:[~2009-06-24 23:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-24 21:16 [PATCHv5 0/3] gitweb: gravatar support Giuseppe Bilotta
2009-06-24 21:16 ` [PATCHv5 1/3] gitweb: refactor author name insertion Giuseppe Bilotta
2009-06-24 21:16   ` [PATCHv5 2/3] gitweb: gravatar support Giuseppe Bilotta
2009-06-24 21:16     ` [PATCHv5 3/3] gitweb: gravatar url cache Giuseppe Bilotta
2009-06-24 22:02       ` Junio C Hamano
2009-06-24 22:46         ` Giuseppe Bilotta
2009-06-24 23:06           ` Jacob Helwig
2009-06-24 23:31             ` Giuseppe Bilotta [this message]
2009-06-24 23:41               ` [PATCHv5bis " Giuseppe Bilotta
2009-06-25  0:01           ` [PATCHv5 " Junio C Hamano
2009-06-25  7:39   ` [PATCHv5 1/3] gitweb: refactor author name insertion Jakub Narebski
2009-06-25  8:04     ` Giuseppe Bilotta

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: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=cb7bb73a0906241631h6ad03867i796b658abc425896@mail.gmail.com \
    --to=giuseppe.bilotta@gmail.com \
    --cc=git@aaroncrane.co.uk \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jacob.helwig@gmail.com \
    --cc=jnareb@gmail.com \
    --cc=nanako3@lavabit.com \
    /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://80x24.org/mirrors/git.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).