shared array?

Laeeth Isharc via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Sep 14 06:56:15 PDT 2015


On Monday, 14 September 2015 at 08:57:07 UTC, Ola Fosheim Grøstad 
wrote:
> On Monday, 14 September 2015 at 00:53:58 UTC, Jonathan M Davis 
> wrote:
>> So, while the fact that D's GC is less than stellar is 
>> certainly a problem, and we would definitely like to improve 
>> that, the idioms that D code typically uses seriously reduce 
>> the number of performance problems that we get.
>
> What D needs is some way for a static analyzer to be certain 
> that a pointer does not point to a specific GC heap. And that 
> means language changes... one way or the other.
>
> Without language changes it becomes very difficult to reduce 
> the amount of memory scanned without sacrificing memory safety.

Personally, when I make a strong claim about something and find 
that I am wrong (the claim that D needs to scan every pointer), I 
take a step back and consider my view rather than pressing 
harder.  It's beautiful to be wrong because through recognition 
of error, growth.  If recognition.

> And I don't think a concurrent GC is realistic given the 
> complexity and performance penalties. The same people who 
> complain about GC would not accept performance hits on 
> pointer-writes. That would essentially make D and Go too 
> similar IMO.

Given one was written by one (very smart) student for his PhD 
thesis, and that as I understand it that formed the basis of 
Sociomantic's concurrent garbage collector (correct me if I am 
wrong), and that this is being ported to D2, and whether or not 
it is released, success will spur others to follow - it strikes 
me as a problematic claim to make that developing one isn't 
realistic unless one is deeply embedded in the nitty gritty of 
the problem (because theory and practice are more different in 
practice than they are in theory!)  There is etcimon's work too 
(at research stage).

Don't underestimate too how future corporate support combined 
with an organically growing community may change what's possible. 
  Andy Smith gave his talk based on his experience at one of the 
largest and well-run hedge funds.  An associate who sold a decent 
sized marketing group got in contact to thank me for posting 
links on D as it helped him implement a machine-learning problem 
better.  And if I look at what's in front of me, I really am not 
aware of a better solution to the needs I have, which I am pretty 
sure are needs that are more generally shared - corporate inertia 
may be a nuisance but it is also a source of opportunity for 
others.

In response to your message earlier where you suggested that 
Sociomantic was an edge case of little relevance for the rest of 
us.  I made that point in response to the claim that D had no 
place for such purposes.  It's true that being able to do 
something doesn't mean it is a good idea, but really having seen 
them speak and looked at the people they hire, I really would be 
surprised if they do not know what they are doing.  (I would say 
the same if they had never been bought).  And they say that using 
D has significantly lowered their costs compared to their 
competitors.  It's what I have been finding, too, dealing with 
data sets that are for now by no means 'big' but will be soon 
enough.

It's also a human group phenomenon that it's very difficult to do 
something for the first time, and the more people that follow, 
the easier it is for others.  So the edge case of yesteryear 
shall be the best practice of the future.  One sees this also 
with allocators, where Andrei's library is already beginning to 
be integrated in different projects.  I had never even heard of D 
two years ago and had approaching a twenty year break from doing 
a lot of programming.  But they weren't difficult to pick up and 
use effectively.

Clearly, latency and performance hits are different things, and 
the category of people who care about performance is only a 
partial intersection of those who care about latency.

Part of what I do involves applying the principle of contrarian 
thinking, and I can say that it is very useful, and not just in 
the investment world:
http://www.amazon.com/The-Contrary-Thinking-Humphrey-Neill/dp/087004110X

On the other hand, there is also the phenomenon of just being 
contrary.  One sometimes has the impression that some people like 
to argue for the sake of it.  Nothing wrong with that, provided 
one understands the situation.  Poking holes at things without 
taking any positive steps to fix them is understandable for 
people that haven't a choice about their situation, but in my 
experience is rarely effective in making the world better.


More information about the Digitalmars-d-learn mailing list