如何ENV(“APP_DEBUG”,1),并登录::调试将影响流明/ Laravel的表现?

问题描述 投票:0回答:2

我建设使用流明和Laravel应用和我使用env和登录::调试在很多很多地方

现在,当我把我的应用程序,以生产将env和登录::调试会影响性能?

我应该去和我的代码替换它们?

谢谢

laravel lumen
2个回答
1
投票

首先,你不应该在任何地方使用env()帮手,除了在你的配置文件。它应该只是填充ENV变量的配置文件的方式。这主要是由于配置缓存,你可以阅读更多关于它在这里https://laravel.com/docs/5.7/configuration#configuration-caching

所以不是env('APP_DEBUG',1),这将始终返回1,如果你有一个配置的缓存,你应该使用config('app.debug',1)

现在,谈论你的表演的担忧,把东西放到日志是有成本的。老实说,我只是不知道,所以我把我的当前打开的流浪汉箱一个简单的测试。

for($i = 0; $i < 100000; $i++){ Log::debug("helloworld"); }; =>7.7秒

for($i = 0; $i < 100000; $i++){}; =>0.0007秒

这是说,在实际使用的情况下,你很少会做出那种循环和添加日志是值得的好处。将日志具有的每次迭代0.00007秒的成本在这里,没有太大的实际。

访问配置howerer是几乎没有成本的相同测试,为100 000次迭代,需要0.1713秒:)


1
投票

Laravel日志基本上没有文件写入操作或许第三方呼叫系统,如松弛日志通知。这取决于你有什么驱动程序设置了哪些日志级别。 more info

  • Log:debug()登录活动自定义消息/调试跟踪不会影响太大了相当数量的请求,但如果它是在每一页的页眉/页脚,你有每秒1000个电话,我会说你是为每个请求添加额外的日志记录操作。
  • 但也取决于你正在登录的东西。如果它是一个字符串味精那么它的罚款,但你正在登录的大集合对象,然后我会说这会影响一点上请求的响应时间。
  • 其次,APP_DEBUG是使用一些程序包还计算并为您提供开发过程中的有用信息的标志。例如包等barryvdh/laravel-debugbar。如果您有关于生产允许使用APP_DEBUG=true这样的包,这将非常消耗一些额外的内存。
  • APP_DEBUG也有例外的堆栈跟踪转储你的错误。在生产你想隐藏的信息,只是显示标准错误页面。所以,我会鼓励你禁用APP_DEBUG =直播假。
© www.soinside.com 2019 - 2024. All rights reserved.