다음 thinkphpframework 튜토리얼 칼럼에서는 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는 지연 로딩을 사용합니다. 이 방법은 3.x에 비해 성능이 상당히 향상되었습니다.
다른 하나는 캐싱입니다. TP3.X는 포함될 모든 파일을 하나의 파일로 패키징할 수 있으므로 다중 로딩을 피할 수 있습니다. 그러나 TP5에서는 템플릿이 캐시됩니다.
높은 동시성에서는 APC 사용, 하드웨어 개선, nginx 사용 등을 할 수 있습니다.
위 내용은 메소드 실행이 TP 성능에 미치는 영향에 대해 논의의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!