色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

為什么facebook的hiphop把php轉換成了C++而不是把php改成編譯型的語言,直接執行編譯后的文件不是更快嗎?

老白2年前16瀏覽0評論



hippop設計的初衷不是要轉換源代碼,而是要節省服務器資源。

開發來開發去,他們發現一個意想不到的收獲,就是這東西可以提升程序的執行性能,于是深挖了下去,把hippop完善起來。

2013年,他們發現這條路子不對,就廢棄了hiphop方式,轉而改用hhvm,通過虛擬機即時編譯的方式來處理它們服務器上大量的php代碼,提升服務器的執行性能。

至于為什么不把php改為編譯型語言,這個問題很有意思。如果要用編譯型語言,有很多現成的編譯型語言可以直接用啊,沒必要去改一個過來。他們的主要目的是要處理那一大堆正在成千上萬臺服務器上跑著的php代碼,讓它們跑快些,占用服務器的資源少一些,不然的話,性能倒是一回事,另外,項目一擴張,就要添置更多的硬件,就要更多人更多精力來維護,這樣滾雪球下去管理上的問題會很恐怖。

如果把php改成編譯型語言,其實就等于開發了一門新的語言。那舊的代碼怎么辦?退一步想,他們舊的代碼繼續維持用舊的方式運行,新項目就用新的語言來開發。可是開發新的語言需要時間,開發出來后,還需要開發大量的類庫,函數庫,否則這語言就沒實際用處。就像c#開發出來了,還要有.net類庫做后盾。這么做成本也太高了。

相對而言,用hiphop把php轉成c++,利用c++已有的資源是可行的。而且不用改動舊的代碼。但是這么做也有麻煩。編譯的動作比較耗時,如果有某個地方php代碼升級了,或者修復漏洞,或者因為其它原因做了改動,就得重新編譯。這還不考慮跨平臺等其他因素。

那么,最好的辦法就是現在他們采用的虛擬機即時編譯的方法。只要做好虛擬機就行了。