次の thinkphp フレームワーク チュートリアルのコラムでは、TP 実行メソッドに非常に多くのファイルを導入することによるパフォーマンスへの影響を紹介します。 !
具体的な質問:
メソッドを実行するために thinkphp が非常に多くのファイルを導入する必要があるのはなぜですか?また、それがパフォーマンスにどのような影響を及ぼしますか?
タイトルの通り、thinkphp のあるメソッドでは echo 1 が 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 と比較すると、パフォーマンスが大幅に向上しました。
もう 1 つはキャッシュです。 TP3.X では、インクルードするすべてのファイルを 1 つのファイルにパッケージ化できるため、複数のロードを回避できます。ただし、TP5 ではテンプレートはキャッシュされます。
高い同時実行性では、APC の使用、ハードウェアの改善、nginx の使用などが可能です。
以上がメソッドを実行する TP がパフォーマンスに及ぼす影響について議論するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。