我們正在編程,無論語言如何,我們都可以採用一些概念和技術來提高代碼可讀性,理解和應用程序性能
最大的學習是:不要試圖重新發明輪子。正如我一直說的:研究和研究。很可能有人已經面臨與您相同的問題,並找到了有效的解決方案。利用社區積累的知識不僅節省了時間,還可以幫助避免陷阱和常見錯誤
查詢和數據庫> 在這個主題上,在應用程序中非常重要的是,我已經寫了一點,值得一讀。 優化數據持久性並在MySQL和應用程序上閱讀
性能優化技術
除數據庫和數據庫外,還有其他用於優化應用程序的基本領域。讓我們突出顯示一些:
緩存的使用對於減少數據庫中的負載至關重要,這是臨時存儲經常訪問的數據。社區為此目的廣泛使用Redis
REDIS是內存中的高度性能但揮發性的NOSQL數據庫,因為內存不持久。它是以下案例的理想選擇
真實的 - 時間消費數據
>用戶會話
購買購物車
>循環:
的工具或簡單函數作為Microtime()來驗證實際影響。請注意循環中的數據操縱,並避免記憶浪費
> >本機操作:使用本機PHP功能(例如Array_map)通常比創建自定義解決方案更安全,更有效。請記住,“無需重新發明輪子。”
>最小化循環操作:
的人的生活更輕鬆。
示例:
當用戶在電子商務中購買時,是否有必要立即發送電子郵件確認?很多時候,不。在這種情況下,您可以將電子郵件發送到排隊,該隊列將在很多地方進行處理,並保存資源並確保可擴展性
>子流程
:這不是銀色子彈,但取決於情況,值得
需要並包括
:更喜歡使用自動裝置來管理類和文件加載。這不僅可以提高性能,還避免了大型和不必要的班級(著名的巨型)問題。例如,僅使用SELECT方法加載7,000行加載一類是極低效率的。在這些情況下,重要的是要考慮重構
>您需要知道的第一件事是PHP是一種非常簡單的語言。在正常的溫度和壓力條件下,適用於代碼中的請求量以及適當的優化,一切都可以很好地工作
“但是馬修,什麼是與請求數量相對應的機器?”
我已經參與了每天收到超過600萬請求的複雜應用程序的實施和優化,平均而言,使用2台具有2個VCPU和2 GB的RAM 的機器。
現在,談論工具:
>保持更新版本>
保持軟件包,工具,框架和最高的PHP語言至關重要。我知道,通常會從較舊版本(例如PHP 7.4)遷移到像PHP 8.x這樣的新版本的努力似乎很大。但是,在績效,安全性和支持方面的好處值得付出努力
>
特別注意線程和兒童過程(兒童過程)的配置。為這些設置設置非常高的值或允許使用大文件的值可能會超載機器,從而導致缺陷和不可用。始終根據機器容量和實際應用要求調整這些設置
監視
當我們談論優化時,最重要的項目之一就是了解需要優化的內容。為此,良好的應用程序監視工具(應用程序性能監視)可以提供有價值的信息,並在問題變得至關重要之前允許預防措施
從手動PHP日誌搜索到自動解決方案,有幾種監視方法。在自動化工具中,脫穎而出:
datadatog
這些工具被稱為“插件”:只需安裝代理,重新啟動服務並配置面板即可創建指標和警報
另一方面,還有更多的手動選項,儘管需要更大的努力和團隊知識,但可能值得取決於上下文:
使用這些手動工具的挑戰是它們添加的複雜性,尤其是在沒有專用支持團隊的強大應用程序中。這些解決方案需要大量的配置,嚴格的測試並小心,以防止代理對性能產生負面影響。此外,他們需要故障轉移層和層 - 僅冗餘機通常還不夠。 但是,在周末實施和測試這些工具可能是一個巨大的挑戰! 在大多數情況下,諸如New Resic之類的工具在大多數情況下提供了一個很好的起點,提供了預防災難的出色能力。但是,重要的是要意識到成本,這取決於用途
以上是最大化應用程序-PHP的詳細內容。更多資訊請關注PHP中文網其他相關文章!