Facebook是PHP寫的,為什麼至今沒有重構?

時間 2021-05-11 01:31:32

1樓:二進位制拾荒者

除了大家都說的hhvm,php其實還有乙個好處就是在除錯環境可以解釋執行。在fb,碼畜們(我)在sandbox裡做開發,是不需要編譯的,這樣可以最快速度地除錯,但是部署到生產環境的時候會經過編譯來提高效能。

2樓:疏義

先前做了llvm還有hack,但是php7出來以後,發現hack的效能跟php7相差不多,而且人家正統的php相容性還特別好,後面就沒人提這個事了。。。我估計現在fb用的是他們自己編譯的php7,反正現代php很多時候只是拿來做api的,前端react夠快就行了

3樓:賽維

早就重構了。

確實是php開發的早期版本,但是後來隨著訪問量上公升,出現了不足。主要原因還是程式邏輯過於複雜,效能不夠,導致響應時間太長,如何優化呢?最開始是寫了解析器,將php編譯成C++,然後在編譯成二進位制,但是這種方式開發太麻煩,更新也太麻煩。

隨後,fb開發了hack語言,解決php型別的約束問題,同時採用了jit,也解決了效能問題,最初hack直譯器是相容php的,最近的版本已經不相容php。

hack語言和hack直譯器就是fb重構fb的必殺技。

PHP不內建多執行緒程式設計支援,是為讓PHP容器 PHP FPM Apache 執行更加穩健,不懂求解釋?

執行緒更輕,更容易共享資源,比如開啟的檔案。執行緒容易處理不當互相影響。程序頁表都不一樣所以乙個掛了不容易影響另外的程序。但是資源共享比較麻煩。反對 Dean.Lee 對執行緒和程序的觀念。程序和執行緒的區別更多是在共享資源方面。在Linux 下,執行緒是共享頁表和檔案還有其他資源的。無論是執行緒還...

Facebook 的產品立項流程是怎樣的?

方艦SDStudio 1.描繪遠景,設定目標 1 遠景的思考 a 我們為什麼設這個目標,而不是另外乙個目標?b 在你做事之前,腦子裡應該有畫面感,接下來就是圍繞這個去實現 c 我們計畫做些什麼來實現這個遠景?需要目標具體化 2 如何設定目標 SMART 規則 a S 非常詳細具的 Specific ...

php函式是怎麼判定檔案裡一行內容的。為什麼我讀取的一行不完整

黃良懿 瀉藥,知乎上知道這個問題答案的人很多,但大部分都像我一樣,真的不想回答這樣的問題。建議樓主提問前先查PHP文件 不行再Google,最後再提出自己的疑問,並詳述做過的嘗試,對疑問的初步分析,這才能真正的提高自己。以下內容複製自PHP官方文件 fgets PHP 4,PHP 5 fgets 從...