lkml.org 
[lkml]   [2005]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: typedefs and structs
From
On Wed, Nov 09, 2005 at 08:22:15AM -0800, Vadim Lobanov was heard to remark:
> On Wed, 9 Nov 2005, J.A. Magallon wrote:
>
> > void do_some_stuff(T& arg1,T& arg2)
>
> A diligent C programmer would write this as follows:
> void do_some_stuff (struct T * a, struct T * b);
> So I don't see C++ winning at all here.

I guess the real point that I'd wanted to make, and seems
to have gotten lost, was that by avoiding using pointers,
you end up designing code in a very different way, and you
can find out that often/usually, you don't need structs
filled with a zoo of pointers.

Minimizing pointers is good: less ref counting is needed,
fewer mallocs are needed, fewer locks are needed
(because of local/private scope!!), and null pointer
deref errors are less likely.

There are even performance implications: on modern CPU's
there's a very long pipeline to memory (hundreds of cycles
for a cache miss! Really! Worse if you have run out of
TLB entries!). So walking a long linked list chasing
pointers can really really hurt performance.

By using refs instead of pointers, it helps you focus
on the issue of "do I really need to store this pointer
somewhere? Will I really need it later, or can I be done
with it now?".

I don't know if the idea of "using fewer pointers" can
actually be carried out in the kernel. For starters,
the stack is way too short to be able to put much on it.

--linas


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-11-09 20:23    [W:0.155 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site