預處理太慢Facebook 現在直接支持JIT C++代碼
Facebook正在進行C++代碼即時編譯,將其視為運行快速的腳本語言。引用phoronix網站的消息,Facebook工程師在本月的布魯塞爾EuroLLVM會議上簡要介紹了這項工作。多年來,Facebook在HHVM上的工作都致力於各種編程語言創新,此前他們在使用超快速C/C++預處理器進行其它開源語言相關的工作時,系統運行很慢,現在最新工作是直接支持JIT C++代碼,將其視為腳本語言,速度得到了巨幅提升。
具體來看,Facebook 目前已經在生產中使用JIT 過的C++ 代碼作為他們自己的“高效腳本框架”,用於在他們的L7 反向代理中處理他們的HTTP 請求處理邏輯。
如前邊的圖片所示,“Handling all Facebook requests with JITed C++ code”,所有HTTP 請求都使用 JIT 過的C++ 處理,C++ 腳本在運行時編譯、鏈接與執行,並由LLVM/Clang 構建。與其它腳本語言相比,這提供了更好的調試、性能分析和最終的運行時性能。
Facebook 工程師表示,JIT C++ 語言需要依賴於預編譯的頭文件和其它更改,以適應其工作流程與相應要求,新的 JIT C++ 腳本框架比以前使用的另一種腳本語言快4 倍。但其同時也表示,這會在一定程度上增加初始化啟動時間。