• 尾部延迟(也称为高百分比延迟)是指客户端很少看到的高延迟。例如:“我的服务通常在10毫秒左右响应,但有时需要100毫秒左右”。世界上有很多导致尾部等待时间的原因,包括争用,垃圾回收,数据包丢失,主机故障以及操作系统在后台执行的奇怪操作。原因之一是现代体系结构(如微服务和SoA)往往具
  • Web性能提升技巧:14kb规则,也称为首页14kb规则,首页html大小不超过14kb。当然如果启动了服务器端压缩,应该是压缩后的14kb。当用户打开网页时,收到的HTML的第一个TCP块为14kb。这是由于TCP慢启动算法为平衡传输速度所导致的。小的HTML文件可帮助浏览器在接收 icon
  • 当您的应用程序在真实环境中运行时,您开始遇到在本地或开发环境中未发现的问题。您如何与应用程序进行交互以查找应用程序的运行方式并找到问题的根源?JVM的优势之一是可用于诊断的工具数量众多。如果监视和应用程序日志提供的信息不够,我们必须进入服务器并使用这种类型的实用程序。 icon
  • 大页面是一种减少处理器TLB缓存压力的技术。这些缓存用于加快将虚拟地址转换为物理内存地址的时间。大多数体系结构支持多种页面大小,通常基页大小为 4 KB。对于使用大量内存的应用程序,例如大型 Java 堆,使用更大的页面粒度映射内存以增加 TLB 中的命中率是有意义的。在 x86-64 上, icon
  • 在本文中,Ram Lakshmanan分享了一些技巧,以调整G1垃圾收集器以获得简单而有效的最佳性能。通过这些技巧,方法和说明来调整应用程序以获得最佳性能。自Java 9以来,G1一直是默认的GC算法。 1.最大GC暂停时间考虑将“ icon
  • 使用GraalVM本机原生构建Spring Boot本机应用,通过PetClinic试验对比: icon
  • 长期以来,应用程序监视工具已经能够使用JMX通过网络连续获取数据。例如,可以从OperatingSystemMXBean获得CPU负载,并在JDK Mission Control中将其可视化。JDK16的JFR提供了更丰富的结构化数据,例如堆栈跟踪和带有时间戳的值,可通过网络传输这些 icon
  • 优先考虑组成而不是继承、尽一切可能内联方法、创建小方法是简单的提升代码性能方法:大多数开发人员会遇到有关Java性能的问题。大多数开发人员不知道正确的答案。这里提供三种简单优化技巧: 1.内联Java内联方法是JIT编译器使用 icon
  • JVM在分配新对象时,将在专用于原始线程的TLAB(线程本地分配缓冲区)中分配该对象。由于每个线程只能写入自己的TLAB,因此不需要同步。TLAB默认情况下处于启用状态,但如果您疯了,可以随时使用-XX:-UseTLAB调整标志将其禁用。Java线程本地分配缓冲区可以用《 icon
  • 在JDK 15中,ZGC可以投入生产了。换句话说,它现在是JDK中的一项产品(非实验性)功能,建议您在生产中使用它。这个变化是通过JEP 377引入的,是许 icon
  • 1. 移位操作可以大大提高效率。使用移位操作来计算乐观整数2^n(n是乐观整数)的乘除。 icon
  • 将MongoDB从2000 个事件/秒处理吞吐量提升到惊人的 80,000 个事件/秒。介绍如下图所示,我们的系统必须在事件处理应用程序完成的写入和 API 服务应用程序完成的读取之间取得平衡。每当事件处理应用程序需要写入超过平均水平(2K 个事件/秒)时,API 应用程序就 icon
  • 将整数加入集合Collection或Map中时,是直接将int原始类型加入还是变成Integer整数对象类型加入呢?这两者有什么区别?JDK 1.5版引入了Java原语类型的自动装箱。这意味着当在需要引用类型的任何地方使用基本类型时,包装器类将自动创建。因此,在JVM的JDK 1.5 icon
  • 总结用于加载CSS的最佳网络性能做法: 延迟加载Start Render不需要的任何CSS: 这可能是关键CSS; 或将CSS分成依据媒体Media不同的文件。 避免@import: 在您所有的HTML中; icon
  • Kafka内部世界是在字节级别上存储状态的, icon
  • 我们的软件倾向于使用大量线程池-主要是通过java.util.concurrent.ExecutorService实现(通过创建Executors.new...。我们为各种异步用例创建线程池,并且可以在各处看到它们。所有这些执行器都有线程工厂。它隐藏在默认的工厂方法,但您可以提供线程工厂;如 icon