Hacker News new | past | comments | ask | show | jobs | submit login

Funny that people notice this. I think this is how all pages on the internet should be! Lately I'm getting tired of all those fancy Javascript pages or pages build on bloated frameworks.

The speed of this forum has nothing to do with D. You can achieve this in a language like PHP as well.

Just skip the bloat (server and client side).




Here are some of the things that play a part in the forum's performance:

* Optimized and deflated static resources

* Deflated HTML output

* SQLite prepared statements

* Integrated HTTP server (although it's currently in front of an Apache proxy)

* An optimized string builder (https://github.com/CyberShadow/DAppenderResearch)

* RAM cache of frequent DB queries

While there are equivalents available for interpreted/CGI languages (e.g. opcode caches, memcached), there is still a significant performance advantage. With a warm cache, most pages can be written out in under 5ms, and the busiest in under 50.

For some perspective, the time needed to compose the busiest view (threaded or split-view) halved when I moved from naive string concatenation to an optimized appender.


Great work. I wonder if there is a way to turn this into a more general purpose framework then just serving up one specific forum.


Yes, there are way too many things hard-coded at the moment. I want to refactor all of it out into templates, config files and library code. There's apparently some interest of adopting some code into D's standard library, too.


s/some/a ton of/


What's the current state of D, in relation to compilers and libraries? Did one compiler/version and one standard library have won already?


Yes. D1 is pending deprecation at the end of this year. D2 uses a common runtime separated from the standard library, and you can use Phobos and Tango alongside each other.

http://en.wikipedia.org/wiki/D_(programming_language)#Histor...




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: