shared array?
Ola Fosheim Grostad via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Sep 14 15:16:56 PDT 2015
On Monday, 14 September 2015 at 20:54:55 UTC, Jonathan M Davis
wrote:
> On Monday, September 14, 2015 01:12:02 Ola Fosheim Grostad via
> Digitalmars-d-learn wrote:
>> On Monday, 14 September 2015 at 00:41:28 UTC, Jonathan M Davis
>> wrote:
>> > Regardless, idiomatic D involves a lot more stack
>> > allocations than you often get even in C++, so GC usage
>> > tends to be low in
>>
>> Really? I use VLAs in my C++ (a C extension) and use very few
>> mallocs after init. In C++ even exceptions can be put outside
>> the heap. Just avoid STL after init and you're good.
>
>>From what I've seen of C++ and understand of typical use cases
>>from other
> folks, that's not at all typical of C++ usage (though there's
> enough people using C++ across a wide enough spectrum of
> environments and situations that there's obviously going to be
> quite a wide spread of what folks do with it). A lot of C++
> folks use classes heavily, frequently allocating them on the
> heap.
Dude, my c++ programs are all static ringbuffers and stack
allocations. :)
It varies a lot. Some c++ programmers turn off everything runtime
related and use it as a better c.
When targetting mobile you have to be careful about wasting
memory...
> types of heap allocations in your typical C++ program - e.g.
> make_shared has become the recommended way to allocate memory
> in most cases
I use unique_ptr with custom deallocator (custom freelist), so it
can be done outside the heap. :)
> And while folks who are trying to get the bare metal
> performance that some stuff like games require, most folks are
> going to use the STL quite a bit.
I use std::array. And my own array view type to reference it.
Array_view us coming to c++17 I think. Kinda like D slices.
STL/string/iostream is for me primarily useful for init and
testing...
> such as Qt. It's the folks who are in embedded environments or
> who have much more restrictive performance requirements who are
> more likely to avoid the STL or do stuff like avoid heap
> allocations after the program has been initialized.
Mobile audio/graphics...
> So, you _can_ have low heap allocation in a C++ program, and
> many people do, but from what I've seen, that really isn't the
> norm across the C++ community in general.
I dont think there is a C++ community ;-) I think c++ programmers
are quite different based on what they do and when they started
using it. I only use it where performance/latency matters. C++ is
too annoying (time consuming) for full blown apps IMHO.
Classes are easy to stack allocate though, no need to heap
allocate most of the time. Lambdas in c++ are often just stack
allocated objects, so not so different from D's "ranges"
(iterators) anyhow. I don't see my own programs suffer from
c++isms anyway...
More information about the Digitalmars-d-learn
mailing list