• 尾部延迟(也称为高百分比延迟)是指客户端很少看到的高延迟。例如:“我的服务通常在10毫秒左右响应,但有时需要100毫秒左右”。世界上有很多导致尾部等待时间的原因,包括争用,垃圾回收,数据包丢失,主机故障以及操作系统在后台执行的奇怪操作。原因之一是现代体系结构(如微服务和SoA)往往具
  • Web性能提升技巧:14kb规则,也称为首页14kb规则,首页html大小不超过14kb。当然如果启动了服务器端压缩,应该是压缩后的14kb。当用户打开网页时,收到的HTML的第一个TCP块为14kb。这是由于TCP慢启动算法为平衡传输速度所导致的。小的HTML文件可帮助浏览器在接收 icon
  • Facebook 正在使用 GraalVM 来加速其 Spark 工作负载并减少内存和 CPU 使用率。继续阅读以了解他们的迁移故事、性能改进结果和未来计划。Facebook 在几个关键领域使用 Java,例如大数据(Spark、Presto 等)、后端服务和移动。在迁移到 Graa icon
  • HTTP/2 引入多路复用以大幅提高性能花了 25 年的时间。大多数数据库协议还没有遵循相同的路径,仍处于连接池的石器时代(至少具有公开记录协议的数据库)。多路复用数据库协议可以提高性能,并使连接池成为过去。它还将为从数据库中高效传输数据提供基础。该文使用 icon
  • 大页面是一种减少处理器TLB缓存压力的技术。这些缓存用于加快将虚拟地址转换为物理内存地址的时间。大多数体系结构支持多种页面大小,通常基页大小为 4 KB。对于使用大量内存的应用程序,例如大型 Java 堆,使用更大的页面粒度映射内存以增加 TLB 中的命中率是有意义的。在 x86-64 上, icon
  • 在本文中,Ram Lakshmanan分享了一些技巧,以调整G1垃圾收集器以获得简单而有效的最佳性能。通过这些技巧,方法和说明来调整应用程序以获得最佳性能。自Java 9以来,G1一直是默认的GC算法。 1.最大GC暂停时间考虑将“ icon
  • 长期以来,应用程序监视工具已经能够使用JMX通过网络连续获取数据。例如,可以从OperatingSystemMXBean获得CPU负载,并在JDK Mission Control中将其可视化。JDK16的JFR提供了更丰富的结构化数据,例如堆栈跟踪和带有时间戳的值,可通过网络传输这些 icon
  • 优先考虑组成而不是继承、尽一切可能内联方法、创建小方法是简单的提升代码性能方法:大多数开发人员会遇到有关Java性能的问题。大多数开发人员不知道正确的答案。这里提供三种简单优化技巧: 1.内联Java内联方法是JIT编译器使用 icon
  • 在JDK 15中,ZGC可以投入生产了。换句话说,它现在是JDK中的一项产品(非实验性)功能,建议您在生产中使用它。这个变化是通过JEP 377引入的,是许 icon
  • 1. 移位操作可以大大提高效率。使用移位操作来计算乐观整数2^n(n是乐观整数)的乘除。 icon
  • 将MongoDB从2000 个事件/秒处理吞吐量提升到惊人的 80,000 个事件/秒。介绍如下图所示,我们的系统必须在事件处理应用程序完成的写入和 API 服务应用程序完成的读取之间取得平衡。每当事件处理应用程序需要写入超过平均水平(2K 个事件/秒)时,API 应用程序就 icon
  • 在本文中,我将向您展示 9 个技巧,它们将帮助您在使用 JPA 和 Hibernate 时加快 Oracle 数据库应用程序的速度。为了充分利用正在使用的关系数据库,您需要确保数据访问层与底层数据库系统产生共鸣,因此,在本文中,我将向您展示一些可以提高性能的技巧您的 Oracle、J icon
  • 在最近的 GraalVM 21.2 版本中,我们改进了对 VS Code 的工具支持,VS Code 现在与 VisualVM 紧密集成。它实际上不仅仅是一个分析器,更适合描述为一个多合一的 Java 监控和故障排除工具。这意味着现在直接从 VS Code 对 Java 项目进行性能和内存分 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