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

36 comments:

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

    ReplyDelete
  2. 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
  3. Thanks for such a great post and the review, I am totally impressed! Keep stuff like this coming.

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

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

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

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


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

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

    ReplyDelete
  9. 돈을 만들고 돈이되는 커뮤니티 현금 같은 커뮤니티 - 목돈넷 https://mokdon.net
    언주 슬롯머신구비 광고 퀸알바 코인선물거래소 금융DB 오픈채팅 홀짝 충판모집 통장삽니다 가입머니 추출 MGM카지노그래프게임 테더 각종최신디비 인원채널 문자해킹디비 카쉐어링 바카라플레2배뱅커195넥스트링 주식아이투자 외국유심 배터 일반장 스포츠 승인전화 뒷빵 단가조율 미터치디비 선불유심팝니다 생성계정판매 승인요청 현금직거래손대손 사이트해킹 자동 바카라사이트 최대쿠폰 고액 출금한도 유심

    ReplyDelete
  10. I just came across your blog post that talks about time to switch to clang. for the first time, and I believe it is beneficial for our people. Please keep up the good work; I really enjoyed reading it and will give it some thought now. If you are a student and need assistance writing a narrative essay use the help writing scholarship essay. I highly recommend using this service because it is incredibly beneficial to students.

    ReplyDelete
  11. There are several organizations that would provide learning programmers, but I'm discovering the greatest site literature essay writing service. I have utilized this service, so I am very familiar with it. For the best outcomes, you should give this organization a shot. I have no real concerns about your capacity to thoroughly investigate this supplier and choose wisely.

    ReplyDelete
  12. ratatouille musical is a music video based on one of the animated films produced by Disney. and tells the story of a mouse with an extraordinary talent for cooking

    ReplyDelete
  13. The idhoki88 site is a quality online stall and bookie that offers you quality online slot game games that will give you big profits in playing online slot games.

    ReplyDelete

  14. Play microgaming online slot games with the highest RTP slots giving you the convenience of making big wins of up to tens of millions taking you flying with winning money click https://kasinoserverthailand.com

    ReplyDelete
  15. This post taught something new to me. The topic is fresh and good. Knows more about clang because of this post. Thanks for sharing this beautiful post. Keep sharing more interesting and informative blogs like this. Abogado DUI Petersburg VA

    ReplyDelete
  16. For those of you who like to play online gambling games, the site petir500 offers you speedgaming online slot game games with the highest rtp, making it much easier for you to win.

    ReplyDelete
  17. Nice informative post. Thanks for sharing this beautiful blog. Keep sharing more interesting and informative blogs like this. Traffic Lawyer Brunswick VA

    ReplyDelete
  18. I would really appreciate it divorce lawyer in virginia if you could go into further detail. Thank you!

    ReplyDelete
  19. Very good article, the sharing is quite interesting and useful to me. DUI Lawyer Charlotte Virginia

    ReplyDelete

  20. Smooth Transition: Transitioning to Clang for our development was a wise move. The switch was surprisingly seamless, and the improved compile times are noticeable. Our team appreciated the clear error messages and better diagnostics, enhancing our coding experience. While some minor adjustments were needed in our build process, the overall benefits make it a worthwhile shift. Clang's performance and features have certainly elevated our development workflow.
    Abogado Accidentes Camiones VA

    ReplyDelete
  21. "Dovecot IMAP Server Development: Unveiling Robust Capabilities. In-depth exploration of IMAP server enhancements. Essential insights for seamless integration. Empower your server development endeavors."Traffic Lawyer Manassas VA

    ReplyDelete
  22. Abogado de Accidentes de Motocicleta Virginia
    The team has decided to transition to Clang for improved performance and code optimization. This move demonstrates a commitment to modern development tools, leading to more efficient code and better maintainability. The team is embracing Clang, resulting in cleaner, standardized code and improved compatibility across platforms. The decision to switch to Clang reflects a proactive approach to enhancing code quality and reducing potential bugs. It opens up new opportunities for optimization and error-checking, contributing to a more robust and reliable codebase.

    ReplyDelete
  23. Developers thinking about changing their programming language will find "Time to Switch to Clang" to be a strong argument. The paper offers intelligent justifications and advantages for the change. It makes a compelling argument for Clang's adoption by highlighting its effectiveness, compatibility, and efficiency. The article also covers potential issues and offers helpful suggestions for a smooth transition. Overall, this article is a helpful resource for developers looking to transition to Clang and improve their coding efficiency.
    semi truck driver accident
    truck driver accidents

    ReplyDelete
  24. Abogado DUI Amelia Virginia
    The development team found switching to Clang a game-changer, as the compiler's efficiency and speed significantly improved their build times. The seamless integration of Clang with existing tools and IDEs made the transition smooth, allowing them to focus on coding without worrying about compiler-related issues. Clang's robust error messages and diagnostics made debugging faster and more efficient. Its adherence to modern C++ standards allowed them to utilize the latest language features and optimizations, ensuring their codebase was efficient and future-proof. The Clang static analyzer helped identify potential bugs and security vulnerabilities, ensuring software reliability. Clang's memory management and optimization techniques improved application performance, leading to faster execution times and a more responsive user experience. The flexibility of Clang allowed them to customize compiler flags and settings according to their project's specific requirements.

    ReplyDelete
  25. I've been contemplating the move to Clang for some time now, and your blog provides compelling reasons to make the switch. The performance improvements and modern features make it an appealing choice. Thanks for the insightful post!
    burden of proof protective order in virginia


    uncontested divorce forms virginia

    ReplyDelete
  26. Outstanding Criminal Lawyer Fairfax VA! Their expertise and dedication are unparalleled. I faced a challenging case, and they navigated it with precision, securing the best possible outcome. Grateful for their top-notch legal representation!

    ReplyDelete
  27. Amazing, Your blogs are really good and informative. I got a lots of useful information in your blogs. 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) abogados de accidentes, It is very great and useful to all. Keeps sharing more useful blogs..

    ReplyDelete
  28. Nice informative post. Thanks for sharing this beautiful blog. Keep sharing more interesting and informative blogs like this
    Abogado Federal de Defensa Criminal

    ReplyDelete
  29. Exciting to see clang's progress! The addition of crucial warnings, improved error handling, and the potential speed boost in Dovecot compilation make it a compelling choice. Looking forward to your development experience with clang!
    New Jersey Expunge Order of Protection

    ReplyDelete
  30. The review comment for "time-to-switch-to-clang" requires more context. The purpose of the comment, audience, and context are crucial for providing effective feedback. The comment should focus on specific benefits of Clang, such as improved error messages, better static analysis, or faster compilation times. More details are needed to craft a more impactful and relevant review comment.
    motorcycle accident attorney

    ReplyDelete
  31. abogado de lesiones por accidentes de motocicleta
    The article discusses the importance of clear decision-making when discussing the transition to Clang, highlighting its advantages over the current toolchain or alternatives. It also provides practical implementation tips and visual aids to enhance the content's appeal. The article also encourages developers to share their experiences and thoughts on switching to Clang, fostering community engagement and promoting shared insights on development tool choices. The article emphasizes the need for clear reasons, comparison insights, and practical implementation tips to make the transition to Clang a successful one.

    ReplyDelete
  32. "Dovecot Blog: Your sanctuary for all things dove-related. Discover fascinating insights into dove behavior, care tips, and conservation efforts. From cooing melodies to graceful flights, immerse yourself in the world of these gentle creatures. Join us as we celebrate the beauty and wonder of doves."uncontested divorce attorneys in virginia beach





    ReplyDelete