乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      高性能PHP7【筆記】

       硬核項目經(jīng)理 2021-05-31

      一、搭建環(huán)境

      二、PHP7新特性

      A.OOP特性

      1.類型聲明

      • PHP7支持的形參類型聲明的類型有整型、浮點型、字符串型、布爾類型,可以用在函數(shù)形參及對象的方法形參上

      • 返回類型聲明使用了data-type語法,對于形參類型聲明與返回類型聲明一樣的情況是無影響的,這樣就能區(qū)分開它們各自的返回數(shù)據(jù)類型了

      • 使用類型聲明有一個明顯的好處,即它可以讓函數(shù)、方法的形參與返回值有所預期,避免出現(xiàn)不必要的數(shù)據(jù)傳遞,從而造成錯誤

      2.命名空間與use關鍵字批量聲明

      • 非混合模式的use聲明:use 命名空間\{類1,類2},use function 命名空間\(方法1,方法2),use const 命名空間\{常量1,常量2}

      • 混合模式的use聲明:use 命名空間\{類1,類2,function 方法1,function 方法2,const 常量1,const 常量2}

      • 復合模式的use聲明:use 命名空間\{命名空間1\類1,命名空間2\類2}

      3.匿名類

      • 匿名類的聲明與使用是同時進行的,具備其他類所具備的所有功能,差別在于匿名類沒有類名

      • 匿名類的一次性小任務代碼流程對性能提升幫助很大,不必將整個類寫完后再使用它

      • 語法:new class(argument){definition};

      4.Throwable接口

      • PHP7提供了一種全局的接口,使得所有的類都可以基于此使用throw關鍵字

      • 從PHP7開始,任何完事程序或一部分程序中的Fatal錯誤都可以被截獲

      • 大多數(shù)的Fatal錯誤都會拋出一個error實例,類似于截獲異常,error實例可以被try/catch截獲

      B.新的操作符

      1.太空船操作符(<=>)

      • 在比較變量時非常有用,包括數(shù)值(字符串型、整型、浮點型等)、數(shù)組、對象

      • 當符號兩邊相等時返回0

      • 當符號右邊大于符號左邊時返回-1

      • 當符號左邊大于符號右邊時返回1

      • 可以用于書寫清晰易讀的用于usort、uasort、uksort的回調(diào)函數(shù)

      2.null合并運算符(??)

      • 用于代替isset(x)?x:’’;

      3.統(tǒng)一變量語法

      C.其他特性和變更

      1.常量數(shù)組:const STORES = ['en’, ’fr’, 'ar’]; php7:define(’STORES’,['en’, ’fr’, 'ar’]);

      2.Switch中的多個default默認值,在php7中會產(chǎn)生Fatal級別的錯誤

      3.Session_start函數(shù)中的選項數(shù)組:可以在調(diào)用session_start([...])傳遞參數(shù)選項數(shù)組,這些設置信息將覆蓋php.ini中的session配置

      4.Unserialize函數(shù)引入過濾器

      三、PHP7應用性能提升

      A.HTTP Server優(yōu)化

      1.緩存靜態(tài)文件

      2.HTTP持久鏈接:表示一條TCP/IP鏈接上承載著多個上下行請求

      3.GZIP壓縮

      4.PHP獨立部署服務

      5.關閉不用的模塊

      B.內(nèi)容分發(fā)網(wǎng)絡(CDN)

      1.CDN網(wǎng)絡通常服務于媒體文件

      C.CSS與JavaScript優(yōu)化

      1.合并:將所有CSS、JS文件進行合并

      2.縮?。簞h除空行、注釋和額外空格

      3.Minify:是一組完全使用PHP編寫的庫,支持CSS、JavaScript文件的合并與縮小,代碼是面向?qū)ο蠛兔臻g的

      4.Grunt:是一個JavaScript任務運行器,能夠?qū)⒛承┲貜偷娜蝿兆詣踊?,避免反復工?/p>

      5..全頁緩存

      6.Varnish:開源的Web應用程序加速器

      D.基礎設施

      1.Web服務器

      2.數(shù)據(jù)庫服務器

      3.負載均衡(LB)

      • 負載均衡器(LB),根據(jù)每個Web服務器上的負載情況,將外網(wǎng)流量以一定規(guī)則分發(fā)給Web服務器

      • HAProxy,會檢查每個Web服務器的運行狀況

      四、提升數(shù)據(jù)庫性能

      A.MySQL

      1.查詢緩存

      • SHOW VARIABLES LIKE 'hav_query_cache’;

      • my.cnf文件中的配置參數(shù):query_cache_type,query_cache_size,query_cache_limit

      2.存儲引擎

      • innodb_buffer_pool_size:系統(tǒng)內(nèi)存的50%-80%

      • innodb_buffer_pool_instances:每1GBinnodb_buffer_pool_size設置1,如16GB的innodb_buffer_pool_size則設置為16

      • innodb_log_file_size:1-4GB之間

      3.Percona Server - MySQL的fork

      • 對MySQL完全兼容且提供加強功能,可完全代替MySQL并能提供更好的文檔、性能、擴展性

      • 使用改進的Innodb,XtraDB引擎

      4.MySQL性能監(jiān)控工具

      • phpMyAdmin

      • Percona工具箱:pt-query-digest生成查詢報告,pt-duplicate-key-checker找出重復索引和外鍵,pt-variable-advisor輸出MySQL的配置信息以及對于每次查詢的建議

      B.Redis鍵值緩存存儲

      C.Memcached鍵值緩存存儲

      五、調(diào)試和分析

      A.Xdebug

      六、PHP應用的壓力/負載測試

      A.Apache JMeter

      B.ApacheBench(ab)

      C.Siege

      七、PHP編程最佳實踐

      A.代碼風格

      1.類名中每個單詞的首字母必須大寫,左大括號應該在類名后新起一行,右大括號應該在類結(jié)束后新起一行

      2.類的方法和函數(shù)命名應該是駝峰式的,參數(shù)和緊跟著的逗號之間不應有空格

      3.命名空間的聲明之后應該空一行

      4.Visibility類的所有屬性都應該明確指出其可見性并且屬性名應該是駝峰式的

      5.要是有abstract關鍵字的話,則一定是在class關鍵字之前 的,final關鍵字則應該在方法可見性之前,static關鍵字是在方法可見性之后的

      6.所有PHP關鍵字都應該小寫,包括true和false,常量應該都大寫

      7.對于所有控制結(jié)構(gòu)語句,控制結(jié)構(gòu)關鍵詞后都應該有空格,表達 式和外面的括號之間不應該有空格,

      B.測試驅(qū)動開發(fā)

      1.PHPUnit

      C.部署和持續(xù)集成(CI)

      1.PHPCI

      2.Jenkins

      3.Travis CI

      https://github.com/zhangyue0503/php/tree/master/learningphp7highperformance/2

        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多