On Sun, Aug 12, 2007 at 03:16:55PM +0900, Carsten Haitzler wrote:
> On Sun, 12 Aug 2007 02:09:46 -0400 Youness Alaoui
> <[EMAIL PROTECTED]> babbled:
>
> > Hi (first mail on the mailing list),
> >
> > Wouldn't it be more efficient if you only lowered the extension instead of
> > the whole file. I know it's almost nothing cpu-wise, but it would still be
> > useless to waste some small cpu cycles on this.
>
> it will make almost no difference - i need to make a copy anyway and that is
> the biggest expense already. in fact while making the copy i should lower it
> so
> it'd be for free.
>
Yeah, I know almost no difference, but if we can "see" that it can be
done better, then why not do it. A
small 'no difference' here and there, and have that function called
thousands of times, and the 'no
difference' becomes a difference.
> > looking for the first '.' andd then lowering anything after it would be
>
> to find the first . u need to read all of the string from the start anyway. so
> you still have the read cost - and compare to '.' cost.
>
yeah, the read cost, we can't cut it, there's always a 'bare minimum' which you
can't
do without.
> > better, no ? This could also be used for the strcpy, if you only copy inside
> > 'sl' the chars that come after the first '.', it might save some cpu cycles
> > +
> > memory space.
>
> sure - it makes the code more complex. i'd save a few cycles. but in the end -
> you won't see a difference. i'd love to see you come up with a way to measure
> any speedup there :)
>
lol, I don't think there's a way to measure the speedup. Plus, I'm more of a
designer
than an 'optimizer',
you're the one with all that optimization knowledge AFAIK :)
But yes, I do think that a copy of ".zip" would be faster than a copy of
"/my/huge/path/and_big_filename.zip".. + less
+memory used.
and a few hundred thousands of them will probably make a difference.
About code complexity, I don't think it is though. Maybe depends on the person,
especially since this is
really a small set of lines, I wouldn't consider it 'complex'.
> > I would suggest this (untested) patch instead, as it would be more
> > efficient :
> > const char *efreet_mime_globs_type_get(const char *file)
> > {
> > Efreet_Mime_Glob *g;
> > - char *s;
> > + char *s, *dot;
> > const char *ext, *mime;
> >
> > /*
> > * Check in the extension hash for the type
> > */
> > - ext = strchr(file,'.');
> > + dot = strchr(file,'.');
> > + ext = alloca(strlen(dot) + 1);
> > + strcpy(ext, dot);
> > + for (s = ext; *s; s++) *s = tolower(*s);
> >
> > while(ext)
> > {
> > ++ext;
> >
> >
> >
> > What do you think?
> > KaKaRoTo
>
> if you want to get nitty about efficiency - you have a strcpy there - remove
> that and copy the extension onwards as part of the for loop and tolower()ing.
> :)
>
haha, yeah, I should have thought about that :p
You're probably right.. why not do it like that then? ;)
Anyways, just throwing my 2cents in here, but it's not a difficult problem, so
let's
not debate too long on this.
+ I had a good reason to write and say hi to everyone :p
KaKaRoTo
> > On Sun, Aug 12, 2007 at 10:37:22AM +0900, Carsten Haitzler wrote:
> > > On Sat, 11 Aug 2007 18:24:15 +0200 Peter Wehrfritz <[EMAIL PROTECTED]>
> > > babbled:
> > >
> > > yes - as it will only be comparing a series of extenstions after the first
> > > "." the lowering of the chars before that is harmless. this assumes the
> > > extension is also stored in lower case too (which seems to be the case).
> > >
> > >
> > > so you have
> > >
> > > "BigSmellyFish.JPG" -> "bigsmellyfish.jpg"
> > > then u lookup "jpg"
> > >
> > > if it was
> > >
> > > "BigSmellyFish.tar.GZ" -> "bigsmellyfish.tar.gz"
> > > then you lookup "tar.gz" and tyhen if that fails, look up "gz".
> > >
> > > > Enlightenment CVS schrieb:
> > > > > Enlightenment CVS committal
> > > > >
> > > > > Author : raster
> > > > > Project : e17
> > > > > Module : libs/efreet
> > > > >
> > > > > Dir : e17/libs/efreet/src/lib
> > > > >
> > > > >
> > > > > Modified Files:
> > > > > efreet_mime.c
> > > > >
> > > > >
> > > > > Log Message:
> > > > >
> > > > >
> > > > > externsion checks should be case-insensitve.
> > > > >
> > > > > ===================================================================
> > > > > RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_mime.c,v
> > > > > retrieving revision 1.24
> > > > > retrieving revision 1.25
> > > > > diff -u -3 -r1.24 -r1.25
> > > > > --- efreet_mime.c 26 Jul 2007 11:30:10 -0000 1.24
> > > > > +++ efreet_mime.c 11 Aug 2007 13:20:16 -0000 1.25
> > > > > @@ -258,23 +258,26 @@
> > > > > const char *efreet_mime_globs_type_get(const char *file)
> > > > > {
> > > > > Efreet_Mime_Glob *g;
> > > > > - char *s;
> > > > > + char *s, *sl;
> > > > > const char *ext, *mime;
> > > > > -
> > > > > +
> > > > > /*
> > > > > * Check in the extension hash for the type
> > > > > */
> > > > > - ext = strchr(file,'.');
> > > > > - while(ext)
> > > > > - {
> > > > > + sl = alloca(strlen(file) + 1);
> > > > > + strcpy(sl, file);
> > > > > + for (s = sl; *s; s++) *s = tolower(*s);
> > > > > + ext = strchr(sl,'.');
> > > > > + while(ext)
> > > > > + {
> > > > > ++ext;
> > > > >
> > > > Are you sure that you want to lower the whole filename?
> > > >
> > > > -------------------------------------------------------------------------
> > > > This SF.net email is sponsored by: Splunk Inc.
> > > > Still grepping through log files to find problems? Stop.
> > > > Now Search log events and configuration files using AJAX and a browser.
> > > > Download your FREE copy of Splunk now >> http://get.splunk.com/
> > > > _______________________________________________
> > > > enlightenment-devel mailing list
> > > > [email protected]
> > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > > >
> > >
> > >
> > > --
> > > ------------- Codito, ergo sum - "I code, therefore I am" --------------
> > > The Rasterman (Carsten Haitzler) [EMAIL PROTECTED]
> > > 裸好多
> > > Tokyo, Japan (東京 日本)
> > >
> > > -------------------------------------------------------------------------
> > > This SF.net email is sponsored by: Splunk Inc.
> > > Still grepping through log files to find problems? Stop.
> > > Now Search log events and configuration files using AJAX and a browser.
> > > Download your FREE copy of Splunk now >> http://get.splunk.com/
> > > _______________________________________________
> > > enlightenment-devel mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> > -------------------------------------------------------------------------
> > This SF.net email is sponsored by: Splunk Inc.
> > Still grepping through log files to find problems? Stop.
> > Now Search log events and configuration files using AJAX and a browser.
> > Download your FREE copy of Splunk now >> http://get.splunk.com/
> > _______________________________________________
> > enlightenment-devel mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>
> --
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> The Rasterman (Carsten Haitzler) [EMAIL PROTECTED]
> 裸好多
> Tokyo, Japan (東京 日本)
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel