首頁>Club>
9
回覆列表
  • 1 # 文藝的碼農青年

    作為一個技術人員來說,不僅得有技術的深度,也得有技術的廣度,作為後端開發人員來說,也得懂一些前端的基礎知識

  • 2 # 青山三毫米

    看你從事的工作需要什麼,如果需要快速開發,就用php,如果重構維護或者對java有感情了就用java,沒有說一定侷限於用哪個不用哪個,看具體需要來學習

  • 3 # 解壓大象

    PHP暫時還不支援像Java那樣JIT執行時編譯熱點程式碼,但是PHP具有opcache機制,能夠把指令碼對應的opcode快取在記憶體,PHP7中還支援配置opcache.file_cache匯出opcode到檔案.第三方的Facebook HHVM也支援JIT。值得一提的是另外PHP官方基於LLVM圍繞opcache機制構建的Zend JIT分支也正在開發測試中.我們知道在php-src/Zend/bench.php測試顯示,PHP JIT分支速度是PHP 5.4的10倍.PHP的庫函式用C實現,而Java核心執行時類庫(jdk/jre/lib/rt.jar,大於60MB)用Java編寫(jdk/src.zip), 所以Java應用執行的時候,使用者編寫的程式碼以及引用的類庫和框架都要在JVM上解釋執行. Java的HotSpot機制,直到有方法被執行10000次(-XX:CompileThreshold=10000)才會觸發JIT編譯, 在此之前執行在解釋模式下,以避免出現JIT編譯花費的時間比方法解釋執行消耗的時間還要多的情況.PHP內建模板引擎,自身就是模板語言.而Java Web需要使用JSP容器如Tomcat或第三方模板引擎.PHP內建HTTP伺服器和SQLite資料庫,以及Apache模組實現libphp.so和FastCGI服務PHP-FPM.而Java Web開發時普遍需要使用第三方的Servlet容器Tomcat等.

    另外,PHP也可以執行在多執行緒模式下,比如Apache的event MPM和Facebook的HHVM都是多執行緒架構.不管是多程序還是多執行緒的PHP Web執行模式,都不需要PHP開發者關心和控制,也就是說PHP開發者不需要寫程式碼參與程序和執行緒的管理,這些都由PHP-FPM/HHVM/Apache實現.PHP-FPM程序管理和併發實現並不需要PHP開發者關心,而Java多執行緒程式設計需要Java開發者編碼參與.PHP一個worker程序崩潰,master程序會自動新建一個新的worker程序,並不會導致PHP服務崩潰.而Java多執行緒程式設計稍有不慎(比如沒有捕獲異常)就會導致JVM崩潰退出.

    PHP從5.4內建的單程序HTTP伺服器,目的就是用於快速的開發和測試,我覺得是一個很方便的工具,開發者不需要安裝和配置Apache或者Nginx之類Web伺服器就能進行入門開發.而且把PHP直譯器交叉編譯到Android手機或者OpenWRT無線路由就能用PHP這個省資源的HTTP伺服器在區域網內程式設計並提供服務,很方便.JIT在大量計算上有優勢,bench.php指令碼就是用來測試計算效能.真實應用如WordPress等,JIT能帶來的效能提升肯定不會這麼明顯,具有JIT機制的HHVM和沒有JIT的PHP7,在壓力測試WordPress時體現出同一水平,就說明了這個問題.而且我強調過,Web應用大多是I/O密集型應用,編譯型語言不會在I/O密集型應用裡也具有數量級的優勢.所以說,對於大多數PHP開發者來說,就算是沒有JIT機制的PHP7,效能也夠用了.

    最後總結,java轉php,還是php轉java,又或是其他語言的相互轉換都需要考慮綜合因素。比如學習環境,學習的機會,時間。如果有內部轉崗機會最好,比較實踐是最好的老師,語言都是相通的,背後的思想才是王道。

  • 中秋節和大豐收的關聯?
  • 現在有哪些職業是“鐵飯碗”?