首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/4526289/blog/5082378

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

记一次性能优化

五月的某一天,突然从客服处得知……使用我司APP的用户群体中井喷式的出现“网络错误”。司里就我一个后台开发,由于手头掌握的工具和资源都不多,甚至回家后都没有一台可以办公的电脑,处理这种问题还真的难到我了…… 第一步,检查网络。 难道真的是服务器的网络出问题了吗?在认真阅读了入口服务器的代理配置文件后,我陷入了沉思……一台最高带宽只有10M的服务器上,居然设置了很多超过1M的资源,……并且是可频繁访问的那种模式。 于是,我花了不少时间整理这些资源,并将他们转移到了其他服务器。话说其他服务器也不宽裕,但总不能让网络问题存在关键结点上吧。O(∩_∩)O 然后接下来的一天,到了那个用户高峰期时,还是卡了;尽管有了些许不明显的改变——至少,这些改变不是领导们想看见的。 第二步,咨询云服务供应商。 由于服务器不是自己搭建的,近期又正好改了个奇怪的配置(对方正在测试、未正式上线的那种),不得不让人怀疑这里会有问题。 于是,我找到了供应商售后客服;对方查询了近期的网络性能跟踪图表后,得出一句话:带宽方面没有出现什么异常。 虽然对方没有发任何图片给我看,仅是难以让人信服的一句话;但作为一个小开发,我们也...

无界阻塞延迟队列DelayQueue基本原理与使用

DelayQueue 类关系图 从类关系图谱上看,本质上具有集合、队列、阻塞阻塞队列、延迟等特性 应用场景: 延迟队列(类似RocketMQ中提供的机制) 定时任务(定时触发某个任务) 核心原理: 初始状态 队列中的元素按到期时间排好序; 假设存在3个消费者线程 线程1通过争抢成为了leader 线程1查看队列头部元素 发现需要2s后到期,则进入睡眠状态2s后唤醒 此时线程2、3处于待命状态,不会做任何事情 线程1唤醒后,拿到对象1后,向线程2、3发送signal 线程2、3收到信号后,争抢leader 进一步状态 此处假设线程2抢到leader 线程2查看对象2状态,休眠3s后唤醒 后续逻辑与线程1逻辑类同 线程2被唤醒后,线程3成为leader进入等待状态 此时,若线程1已处理完毕,则继续处于待命状态 若线程1未处理完毕,则继续处理 不良状态 一种不好的情况,3个线程因处理时间较长,目前都在处理中状态; 此时对象4快要到期了,没有消费者线程空下来消费 此时对象4的处理会延期 如果元素进入队列很快、且元素间到期时间相对集中,并且元素处理时间较长时,可能造成队列元素堆积情况 特殊状态 ...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

JDK

JDK

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。