On Wednesday, February 05, 2003 3:53 PM [GMT+1=CET], Daniel Frey <[EMAIL PROTECTED]> wrote:
> > Which compiler? How were you using intrusive counting? > > I used some benchmark code which compared several smart-pointers (my own > and the boost version). I had a simple class > > #define LOAD int dummy[2]; > > struct A0 { LOAD }; > struct A1 : boost::counted_base { LOAD }; > > The size of A0 is 8 bytes, the size of A1 was 20 bytes for the Intel (6/7) > compiler and 44 bytes for the GCC (3.2.1). If you like, I can send the > complete code. No need. The size of A1 should be 16 bytes on most 32-bit architectures, but there's nothing fancy going on here. If compilers are making bigger classes it's just GCC-3.2.3 on x86 reports: sizeof(A0) = 8 sizeof(sp_counted_base) = 16 sizeof(A1) = 24 They didn't change the object layout, so I'm a little shocked at your figure of 44 bytes. With threading disabled, it's: sizeof(A0) = 8 sizeof(sp_counted_base) = 12 sizeof(A1) = 20 This is as small as you could expect it to be given the requirements. In any case, that method of making intrusive pointers has been deprecated, and replaced with a new one which doesn't add more than the size of the count to your object (of course, you pay for a separately allocated count object which is 12/16 bytes depending on threading). > > > This was a > > > motivation to start my own little library where I can understand the > > > code. It helped me to understand the things I wasn't able to understand > > > from looking at the boost code. I haven't published it yet for several > > > reasons including missing documentation, missing tests for at least > > > some important platforms/compilers, and last but not least I'm not sure > > > if it would be fair to boost. > > > > Why not? > > Because it addresses the same problems. I don't want to insult anyone here > by taking away users or (even worse) developers. I don't think anyone will be insulted. Nobody around here is jealously guarding development resources, AFAICT. > Although I am pretty sure > I can do that even if I intend to, but this impression is what I would ^^^ "can't?" > like to avoid. Don't worry about it. The more discussion, the more better. > Of course credits are given whereever appropriate. > > > > To sum it up: I believe boost is becoming a blackbox and that worries > > > me. > > > > Please define "blackbox." > > Blackbox means that if it's too hard for me to understand the code, I can > just hope it works. Whenever a problem comes up, I'm left on my own. > Support from the boosters is of course given, it's even better than what > you get from most companies where you have to pay for support, but it's > (at least to me) always the prefered way to understand the code yourself. > > > Are you saying we need more implementation-level documentation? Most > > projects concentrate on that at the expense of user-level docs, and it > > hurts usability. Boost's focus goes the other way, which probably hurts > > transparency. As you say "it's a trade-off." What you could do that > > Indeed, but all the knowledge inside the implementation of boost is > valuable. So many expert have put so much effort in it. Isn't it worth to > let others learn from it and help them to do so? I cannot imagine that I > would know as much as I do about C++ without boost, that is *you*. > Everyone here. Thank you! And I would just like to see more people to > learn from boost. > > > > Andrei has done a lot of good things not just by creating them, but > > > also by writing a book about it. > > > > Agreed, of course. What I mean is that I'm not completely satisfied > > with the implications that his MI design has for smart pointer size on > > real-world compilers. > > And size does matter - the smaller the better ;) Which reminds me to add > Andrei's PBSP to my benchmark and check some stuff. The problem for me is > that I know the importance of documentation, but I'm not good in writing > it :o) No offense intended, but that's a bit of a cop-out. If you're going to be the one asking for better comprehensibility, it isn't really fair to plead "I'm bad at documentation." -- Dave Abrahams Boost Consulting http://www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost