Friday, March 19, 2010

Time to switch to clang

I actually wanted to start using clang a long time ago, but it didn't give enough warnings. Many important warnings, like not verifying printf() parameters, were completely missing. So I kept using gcc..

But in last few days this one guy started adding support for the missing gcc warnings. I also found out that printf() warnings were added within last few months also. So it looks like clang is finally potentially usable! I still have to actually start developing with it, but it looks promising.

This picture shows how much better clang's error and warning handling is compared to gcc.

I also did a few benchmarks with Dovecot:


  • Dovecot compiled about 10% faster with clang. Based on clang's web page I expected much more, but I guess it's better than nothing.. (I used configure --enable-optimizations, didn't change anything else)

  • Dovecot ran about 7% faster when I/O wasn't the limit (SSD disk, fsync_disable=yes).



Here's how I tested the 7% speed improvement (Dovecot v2.0 hg, Maildir):


imaptest seed=123 secs=300 msgs=100 delete=10 expunge=10 logout=1

1)
gcc version 4.4.3 20100108 (prerelease) (Debian 4.4.2-9)

Logi List Stat Sele Fetc Fet2 Stor Dele Expu Appe Logo
100% 50% 50% 100% 100% 100% 50% 10% 10% 100% 1%
30% 5%
674 31545 31442 674 63169 90559 30029 5419 6332 19773 1348
646 31725 31640 646 63270 90160 29987 5403 6163 20224 1292

2)
clang version 1.5 (trunk 98979)
Target: x86_64-unknown-linux-gnu

Logi List Stat Sele Fetc Fet2 Stor Dele Expu Appe Logo
100% 50% 50% 100% 100% 100% 50% 10% 10% 100% 1%
30% 5%
693 33927 33765 693 68032 96951 32356 5691 6786 21034 1386
674 33990 34027 674 68018 97428 32101 5823 6863 21260 1348

19 comments:

  1. I like this website! Glad I found this on google. Its nice, thanks 카지노

    ReplyDelete
  2. Very useful information shared in this article, nicely written! 바카라

    ReplyDelete
  3. You understand your projects stand out of the crowd. There is something unique about them. It seems to me all of them are brilliant.

    먹튀검증
    카지노사이트
    토토

    ReplyDelete
  4. Thanks for such a great post and the review, I am totally impressed! Keep stuff like this coming.

    메이저사이트
    바카라사이트
    토토사이트

    ReplyDelete
  5. Very detailed note and we appreciate your writing skill.
    슬롯머신사이트

    ReplyDelete
  6. I was more than happy to discover this great site. Continue to create more.
    바카라사이트

    ReplyDelete
  7. It’s impressive that you are getting thoughts from this piece of writing as well as from our discussion made at this time. 토토사이트


    ReplyDelete
  8. The blog was actually fantastic! Lots of abundant advice and inspiration, both of which we all need! 릴게임


    ReplyDelete
  9. This content data gives truly quality and unique information. I’m definitely going to look into it.
    카지노사이트

    ReplyDelete
  10. Wonderful article. Fascinating to read. I love to read such an excellent article. Thanks! It has made my task more and extra easy. Keep rocking. 파워볼게임

    ReplyDelete
  11. Thank you for nice information. Please visit our web: click here

    ReplyDelete
  12. well written articles. It looks like you spend a lot of effort and time on your blog.
    토토
    토토사이트

    ReplyDelete
  13. I am searching like this type valuable information, it’s really helpful for me.
    카지노사이트
    바카라사이트

    ReplyDelete
  14. This is very appealing, however, sportstoto it is very important that will mouse click on the connection:

    토토사이트
    파워볼사이트
    먹튀검증

    ReplyDelete
  15. I was searching for a blogpost like this. This post is a complete and comprehensive effort. This post is showing you knowledge level and your depth of research. I want you to keep making this type of post more. So, I can increase my knowledge. A lot of prayers thanks.
    webstorm crack
    mackeeper crack
    vso convertxtodvd crack
    totalspaces crack
    driverhub crack
    wondershare recoverit crack

    ReplyDelete