草庐IT

php - 什么时候错误检查太多了?

在我学习PHP的过程中,我一直在努力阅读有关错误报告和处理的最佳实践,但是每个人的说法各不相同,我一直在努力想出一种清晰简洁的方法来处理我的错误应用程序。我对可能出错的事情使用异常,但在大多数情况下,我很难理解异常是否应该终止应用程序并显示错误页面,或者只是被捕获并静默处理。我似乎无法理解的是,是否有太多报道这样的事情?每次你调用一个函数时,都可能出现可怕的错误,这意味着如果你要确认每一个函数调用,你将不得不用if语句填充页面并计算出一个失败可能对其余部分产生的影响。是否有简明的错误报告文档或想法可以为我解决这个问题?有最佳实践吗?良好错误处理的最佳示例是什么?目前我在做以下事情:将重

php内存多少太多了

我目前正在使用我自己的框架重写我的网站(它非常简单并且完全满足我的需要,我不需要Zend或CakePHP之类的东西)。我做了很多工作来确保所有内容都被正确缓存,在文件中缓存页面以避免sql查询并通常限制sql查询的数量。总的来说,它看起来非常快。首页(超过100次)平均耗时为0.046152微秒。但是我不确定的一件事是我是否已经做了足够的工作来减少php内存使用。我唯一一次遇到问题是在上传大文件时。使用memory_get_peak_usage(TRUE),我认为它会返回脚本运行时使用的最大内存量,平均值(超过100次)为1572864字节。这样好吗?我知道你不知道我在做什么(这很简单

java - Tomcat 应用程序生成太多日志

我有一个在linuxubuntu服务器上的tomcat6.0.20服务器上运行的应用程序。它会在catalina.out文件夹中产生大量日志,其中大部分是在使用应用程序时产生的,但不是应用程序产生的。下面给出了它生成的一些日志,Apr16,20102:55:24PMorg.apache.tomcat.util.digester.DigesterstartElementFINE:startElement(,,mime-type)Apr16,20102:55:24PMorg.apache.tomcat.util.digester.DigesterstartElementFINE:Pushi

java - 对于堆上 Java 缓存来说,多少数据太多了?我应该什么时候开始考虑堆外缓存?

多少数据对于像ehcache这样的堆上缓存来说太多了?我得到了一个24GB内存的服务器。我可能会开始投入2-4GB用于缓存,但最终可能投入20GB左右用于缓存。什么时候我应该担心堆上缓存的GC会花费太长时间?顺便问一下,DirectMemory是唯一可用的开源堆外缓存吗?准备好迎接黄金时段了吗? 最佳答案 取决于您的JVM,尤其是使用的GC。尤其是较旧的GC并不能真正处理非常大的堆,但人们正在努力解决这个问题。例如,Azul系统销售具有数百GB堆的硬件而没有出现问题(即gc在ms内暂停而不是半分钟),这要归功于他们的specialG

java - IntelliJ 太多文件打开错误

在Ubuntu14.04LTS上的IntelliJIDEA13.1.5中,我看到大型项目中偶尔出现错误,提示“打开的文件太多”。有趣的是,这不会消失并完全卡住IDE。我已经尝试了以下方法来修复它。1)修改我的/etc/sysctl.conf使其具有本文中所示的这一行here.减少错误的发生频率:fs.inotify.max_user_watches=524288fs.file-max=3801802)将IntelliJ进程的ulimit-n设置提高到64k。我没有注意到这在性能上有任何差异,但我上面提到的文章声称它会有所帮助。3)将此添加到我的idea64.vmoptions文件中(有

java - 在 Java 中创建太多线程

我在我的Java应用程序中使用线程来部分获取数据(使用网络调用)。我有一个方法(不在线程类中),它创建一个给定大小的线程池(最大10-15)并将它们用于网络调用,我多次调用该方法来自一个循环。当我在慢速机器(3GBRAM,Pentium-IV)上运行此应用程序时,一切正常,但当我在iMac(32GBRAM,i7处理器)上运行它时,它创建了太多线程,有时大约2,500次并抛出内存不足错误。我怀疑JVM没有在完成后立即将已完成的线程放回池中,因此它正在创建新线程。即使在iMac上,如果我保持Thread.sleep(1000);在我上面提到的for循环中,一切正常。虽然创建了大约900个线

java - 是否有太多嵌入式 if 语句这样的事情?

目前我正在编写一些代码(我相信)需要相当多的嵌入式if语句。是否有关于要嵌入多少if语句的一些标准?我的大部分谷歌搜索都出现了与excel打交道的事情。不知道为什么。如果有标准,为什么?是为了可读性还是为了让代码运行更流畅?在我看来,主要是为了提高可读性是有道理的。我的if结构的一个例子:if(!all_fields_are_empty):if(id_search()&&validId())://dostuffelseif(name_search):if(name_exists):if(match我听说嵌套for/while循环有2-3个限制,但是if语句有一些标准吗?更新:我现在有几

java - 太多 "pattern suffixes"- 设计味道?

我刚刚发现自己创建了一个名为“InstructionBuilderFactoryMapFactory”的类。那是一类的4个“模式后缀”。它立即让我想起了这一点:http://www.jroller.com/landers/entry/the_design_pattern_facade_pattern这是设计味道吗?我应该限制这个数字吗?我知道一些程序员对其他事情有类似的规则(例如,在C中不超过N级指针间接寻址)所有类(class)对我来说都是必要的。我有一个从字符串到工厂的(固定的)映射——我一直在做的事情。列表越来越长,我想将它移出使用构建器的类的构造函数(由从map获得的工厂创建.

java - Telegram bot api : Error code 429, 错误:请求太多:稍后重试

我们有一个Telegram机器人。它拥有大约120万订阅者。现在我们在向这些订阅者发送消息时遇到了问题。TelegrambotAPI不提供任何批量消息功能,我们必须向Telegram发送单独的请求。问题是,在几千条消息之后,Telegram开始响应错误429:请求太多,并且暂时不接受任何请求。我们如何有效地向订阅者发送消息? 最佳答案 您应该简单地实现一个全局速率限制器,以确保没有单个用户每秒收到超过固定数量的消息。为了安全起见,请将限制器设置为低于30,甚至每秒5条消息。实际上,每秒向单个用户发送超过5条消息的消息很快就会变得很烦

java - 在高峰时间,请求在 Tomcat 8 中花费太多时间

我已经使用以下配置配置了tomcat:AJP连接器的相同数字,maxThreads=500和acceptCount="150"。它大部分时间都运行良好,但在高峰时段,当我收到比平时多得多的请求时,响应时间太长。有时会超过15秒,在极少数情况下会超时。它可能看起来没问题,因为maxThreads=500并且我有几千个请求,但是,在服务器状态上我看到:Maxthreads:500Currentthreadcount:17Currentthreadbusy:1Keepalivesocketscount:1目前我看到的currentThreadCount的最大数量是27。如果有这么多连接,to