Re: Performance of loop

Lists: pgsql-jdbc
From: Gnanavel S <s(dot)gnanavel(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Performance of loop
Date: 2005-04-28 03:56:32
Message-ID: eec3b03c050427205669495af0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Hi,
First of all, I would like to thank the postgresql team for providing this
wonderful product.

Coming to the point, in postgresql jdbc driver coding, I saw many
inefficient "for" loops. For eg in V2Query.class file
While parsing the parameterized query, there is a "for" loop as this

for (int i = 0; i < query.length(); ++i)
{
char c = query.charAt(i);

....
.....
}

In the above coding, say if the length of the query is 1000 characters then
the query.length() is evaluated 1000 times there by reducing the
performance.
I think the loop can be rewritten as

for (int i = 0,c=query.length(); i < c; ++i)
{
char c = query.charAt(i);

....
.....
}

with regards,
S.Gnanavel
Software Engineer
Satyam Computer Services Ltd


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Gnanavel S <s(dot)gnanavel(at)gmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Performance of loop
Date: 2005-04-28 04:22:27
Message-ID: 42706503.7080800@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Gnanavel S wrote:

> In the above coding, say if the length of the query is 1000 characters
> then the query.length() is evaluated 1000 times there by reducing the
> performance.
> I think the loop can be rewritten as
>
> for (int i = 0,c=query.length(); i < c; ++i)
> {
> char c = query.charAt(i);
>
> ....
> .....
> }

Have you benchmarked this? I doubt it's really a hotspot given that the
JIT is likely to inline length(). Premature optimization and all that..

-O


From: Gnanavel S <s(dot)gnanavel(at)gmail(dot)com>
To: Oliver Jowett <oliver(at)opencloud(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Performance of loop
Date: 2005-04-28 04:38:59
Message-ID: eec3b03c050427213841e5062@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

No. I havn't done any benchmark, but lot of such inefficient loops may hit
the performance.

On 4/28/05, Oliver Jowett <oliver(at)opencloud(dot)com> wrote:
>
> Gnanavel S wrote:
>
> > In the above coding, say if the length of the query is 1000 characters
> > then the query.length() is evaluated 1000 times there by reducing the
> > performance.
> > I think the loop can be rewritten as
> >
> > for (int i = 0,c=query.length(); i < c; ++i)
> > {
> > char c = query.charAt(i);
> >
> > ....
> > .....
> > }
>
> Have you benchmarked this? I doubt it's really a hotspot given that the
> JIT is likely to inline length(). Premature optimization and all that..
>
> -O
>

--
with regards,
S.Gnanavel
Satyam Computer Services Ltd.