首頁  >  文章  >  php框架  >  探討關於TP執行一個方法對效能的影響

探討關於TP執行一個方法對效能的影響

藏色散人
藏色散人轉載
2021-10-18 16:15:481829瀏覽

下面thinkphp框架教學欄位將介紹給大家關於TP執行方法要引入這麼多檔案對效能的影響,希望對需要的朋友有幫助!

具體問題:

thinkphp為啥執行一個方法要引入這麼多文件,對效能有何影響?

如題,在thinkphp中某方法只輸出一個echo 1, 發現要引入的檔案很多,這對服務造成什麼影響。

遇到並發大時候該如何優化?

array(63) {
  [0]=>
  string(43) "{MY_SITE}/index.php"
  [1]=>
  string(52) "{MY_SITE}/thinkphp/start.php"
  [2]=>
  string(51) "{MY_SITE}/thinkphp/base.php"
  [3]=>
  string(67) "{MY_SITE}/thinkphp/library/think/Loader.php"
  [4]=>
  string(73) "{MY_SITE}/vendor/composer/autoload_namespaces.php"
  [5]=>
  string(67) "{MY_SITE}/vendor/composer/autoload_psr4.php"
  [6]=>
  string(71) "{MY_SITE}/vendor/composer/autoload_classmap.php"
  [7]=>
  string(68) "{MY_SITE}/vendor/composer/autoload_files.php"
  [8]=>
  string(80) "{MY_SITE}/vendor/symfony/polyfill-mbstring/bootstrap.php"
  [9]=>
  string(86) "{MY_SITE}/vendor/guzzlehttp/promises/src/functions_include.php"
  [10]=>
  string(78) "{MY_SITE}/vendor/guzzlehttp/promises/src/functions.php"
  [11]=>
  string(82) "{MY_SITE}/vendor/guzzlehttp/psr7/src/functions_include.php"
  [12]=>
  string(74) "{MY_SITE}/vendor/guzzlehttp/psr7/src/functions.php"
  [13]=>
  string(84) "{MY_SITE}/vendor/guzzlehttp/guzzle/src/functions_include.php"
  [14]=>
  string(76) "{MY_SITE}/vendor/guzzlehttp/guzzle/src/functions.php"
  [15]=>
  string(78) "{MY_SITE}/vendor/topthink/think-captcha/src/helper.php"
  [16]=>
  string(66) "{MY_SITE}/thinkphp/library/think/Route.php"
  [17]=>
  string(67) "{MY_SITE}/thinkphp/library/think/Config.php"
  [18]=>
  string(69) "{MY_SITE}/thinkphp/library/think/Validate.php"
  [19]=>
  string(77) "{MY_SITE}/vendor/topthink/think-helper/src/helper.php"
  [20]=>
  string(69) "{MY_SITE}/vendor/yfcmf/geetest/src/helper.php"
  [21]=>
  string(78) "{MY_SITE}/vendor/qiniu/php-sdk/src/Qiniu/functions.php"
  [22]=>
  string(75) "{MY_SITE}/vendor/qiniu/php-sdk/src/Qiniu/Config.php"
  [23]=>
  string(80) "{MY_SITE}/vendor/overtrue/wechat/src/Payment/helpers.php"
  [24]=>
  string(66) "{MY_SITE}/thinkphp/library/think/Error.php"
  [25]=>
  string(57) "{MY_SITE}/thinkphp/convention.php"
  [26]=>
  string(64) "{MY_SITE}/thinkphp/library/think/App.php"
  [27]=>
  string(68) "{MY_SITE}/thinkphp/library/think/Request.php"
  [28]=>
  string(48) "{MY_SITE}/app/config.php"
  [29]=>
  string(54) "{MY_SITE}/data/conf/config.php"
  [30]=>
  string(50) "{MY_SITE}/app/database.php"
  [31]=>
  string(65) "{MY_SITE}/thinkphp/library/think/Hook.php"
  [32]=>
  string(46) "{MY_SITE}/app/tags.php"
  [33]=>
  string(48) "{MY_SITE}/app/common.php"
  [34]=>
  string(64) "{MY_SITE}/thinkphp/library/think/Env.php"
  [35]=>
  string(53) "{MY_SITE}/thinkphp/helper.php"
  [36]=>
  string(65) "{MY_SITE}/thinkphp/library/think/Lang.php"
  [37]=>
  string(67) "{MY_SITE}/thinkphp/library/think/Cookie.php"
  [38]=>
  string(64) "{MY_SITE}/thinkphp/library/think/Log.php"
  [39]=>
  string(57) "{MY_SITE}/thinkphp/lang/zh-cn.php"
  [40]=>
  string(52) "{MY_SITE}/app/lang/zh-cn.php"
  [41]=>
  string(53) "{MY_SITE}/app/home/config.php"
  [42]=>
  string(57) "{MY_SITE}/app/home/lang/zh-cn.php"
  [43]=>
  string(61) "{MY_SITE}/app/home/controller/Bet.php"
  [44]=>
  string(62) "{MY_SITE}/app/home/controller/Base.php"
  [45]=>
  string(66) "{MY_SITE}/app/common/controller/Common.php"
  [46]=>
  string(71) "{MY_SITE}/thinkphp/library/think/Controller.php"
  [47]=>
  string(77) "{MY_SITE}/thinkphp/library/traits/controller/Jump.php"
  [48]=>
  string(65) "{MY_SITE}/thinkphp/library/think/View.php"
  [49]=>
  string(78) "{MY_SITE}/thinkphp/library/think/view/driver/Think.php"
  [50]=>
  string(69) "{MY_SITE}/thinkphp/library/think/Template.php"
  [51]=>
  string(81) "{MY_SITE}/thinkphp/library/think/template/driver/File.php"
  [52]=>
  string(66) "{MY_SITE}/thinkphp/library/think/Cache.php"
  [53]=>
  string(78) "{MY_SITE}/thinkphp/library/think/cache/driver/File.php"
  [54]=>
  string(73) "{MY_SITE}/thinkphp/library/think/cache/Driver.php"
  [55]=>
  string(68) "{MY_SITE}/thinkphp/library/think/Session.php"
  [56]=>
  string(63) "{MY_SITE}/thinkphp/library/think/Db.php"
  [57]=>
  string(79) "{MY_SITE}/thinkphp/library/think/db/connector/Mysql.php"
  [58]=>
  string(74) "{MY_SITE}/thinkphp/library/think/db/Connection.php"
  [59]=>
  string(69) "{MY_SITE}/thinkphp/library/think/db/Query.php"
  [60]=>
  string(77) "{MY_SITE}/thinkphp/library/think/db/builder/Mysql.php"
  [61]=>
  string(71) "{MY_SITE}/thinkphp/library/think/db/Builder.php"
  [62]=>
  string(66) "{MY_SITE}/thinkphp/library/think/Debug.php"
}

網友回答:

使用框架本來就是犧牲些效能獲取開發效率的。 TP框架內部耦合度很高,因此效能比起其他框架還好呢。

看上面加載的文件,你應該使用的是TP5,TP5中使用到的是懶性加載,這種方式只在需要的時候才加載相關的類文件,相比於3.x性能上提升了不少。

另外一種就是快取。 TP3.X能夠將所有的要包含的文件打包成一個文件,這樣就避免了多次載入。不過在TP5是模板才有快取。

高並發下,可以使用APC,提高硬件,使用nginx之類。

以上是探討關於TP執行一個方法對效能的影響的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除