POV-Ray : Newsgroups : povray.off-topic : you & me right now, warp : Re: you & me right now, warp Server Time
6 Sep 2024 23:23:43 EDT (-0400)
  Re: you & me right now, warp  
From: Darren New
Date: 17 Feb 2009 13:03:23
Message: <499afbeb$1@news.povray.org>
scott wrote:
> Well it really depends on how *difficult* it is to match or beat any 
> language with assembler.  It's always theoretically possible, but as you 
> say with modern CPU and compiler design it is becoming increasingly harder.

That was exactly my point. You can always disassemble the output of the C 
compiler to get assembler code, so C cannot by definition beat assembler. 
Nor can anything else.

It's merely a question of how much you're willing to pay to scrape out those 
last few cycles, and whether you really need those last few cycles. But the 
same applies to anything else. Could you take Bellcore's database systems 
with hundreds of millions of lines of SQL stored procedures and rewrite it 
entirely in C? Certainly. Is it worthwhile doing it that way to speed it up? 
Of course not.

So saying that one language is faster than a completely different language 
is one of those FUD overgeneralizations. It's true in some cases, and not in 
others. How fast is C at building and analyzing parse trees that are too big 
to fit in memory? You're probably better off abstracting the problem, either 
with a library or a programming language, and the programming language will 
be able to make better global choices than any straightforward library.

I suspect most people using C and C++ and such don't really ever profile 
parts of their applications they didn't write. They don't look for speedups 
in the runtime libraries, or Boost, or pthreads, or whatever else they're 
using. Just like there are few people who actually compare the speed of 
garbage collection against the speed of manual memory management in real 
programs, and just assume that if the programmer's managing it, it must be 
faster. But it isn't always, exactly because the GC engine can do the kind 
of global analysis that the C compiler does for things like register 
allocation.

Of course the holy grail is a programming language that *is* high level and 
easy to use while also being capable of being turned into extremely 
efficient machine code.

-- 
   Darren New, San Diego CA, USA (PST)
   "Ouch ouch ouch!"
   "What's wrong? Noodles too hot?"
   "No, I have Chopstick Tunnel Syndrome."


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.