• ZGC,Shenandoah和对G1的改进使开发人员比以往任何时候都更接近无暂停时间。在过去六个月中发生的一些最令人振奋的事态发展都在JDK的垃圾收集器(GC)的不断演进中,首先,我们将介绍Shenandoah,这是一种低延迟GC,主要与应用程序同时运行;我们还将介绍作为JDK 12
  • C10K问题是代表一万个并发处理连接的术语。为此,我们经常需要更改已创建的网络套接字的设置以及Linux内核的默认设置,监视  TCP发送/接收缓冲区和队列的使用,  尤其是将我们的应用程序调整为合适的选项来解决这个问题。在今天的文章中,我将讨论如果我们要构建可处理数千个连接的可伸缩 icon
  • 在Java中,通常将异常视为昂贵的,并且不应将其用于流控制。本教程将证明这种看法是正确的,并指出导致性能问题的原因。由于抛出和处理异常的代价很高,因此我们不应将其用于正常的程序流。相反,顾名思义,例外仅应用于例外情况。完整的源代码可以在 icon
  • Netflix的云数据工程团队运行各种JVM应用程序,包括诸如Cassandra和Elasticsearch之类的流行数据存储。尽管我们大多数集群在分配给它们的内存下都能稳定运行,但有时“死亡查询”或数据存储本身中的错误会导致内存使用失控,这可能触发垃圾回收(GC)循环甚至运行JVM记不清。 icon
  • 性能调优通常遵循以下步骤: 出现性能问题 有经验的人知道可能是什么原因,并提出具体的建议 确定基准性能,应用更改,然后再次测量性能 如果与基准相比性能有所改善,请保留更改,否则恢复更改 如果现在认为性能已经足够,那么您就完成了。如果不是,请返回 icon
  • 本文使用一组不同的模式描述了一系列Java虚拟机(JVM)垃圾收集器(GC)微基准及其结果。对于当前问题,我包括了AdoptOpenJDK 64位服务器VM版本13(内部版本13 + 33)中的所有垃圾收集器: 串行GC Parallel / ParallelOld icon
  • 当您的应用程序在真实环境中运行时,您开始遇到在本地或开发环境中未发现的问题。您如何与应用程序进行交互以查找应用程序的运行方式并找到问题的根源?JVM的优势之一是可用于诊断的工具数量众多。如果监视和应用程序日志提供的信息不够,我们必须进入服务器并使用这种类型的实用程序。 icon
  • 如题,如果过早地草率地认为“过早优化是万恶之源”,这是为自己懒惰设计寻找理由,防止屁股决定脑袋。 众说纷纭:1.  当人们使用数据结构,算法和最佳解决方案进行面试时,会使用这个观点:“过早优化是万恶之源” icon
  • 在排队理论使我们能够预测队列长度和等待时间,这是最重要的容量规划。对于架构师来说,这是一个非常方便的工具,因为队列不仅仅是消息传递系 icon
  •  Java 11添加了HttpClient,为我们提供了一种更好的HTTP请求发送方式。它支持异步和同步模式。支持HTTP2开箱即用。有点时髦,Cay Horstmann教授探讨了如何在表面下的工作原理。在 icon
  • 使用GraalVM本机原生构建Spring Boot本机应用,通过PetClinic试验对比: icon
  • JVM在分配新对象时,将在专用于原始线程的TLAB(线程本地分配缓冲区)中分配该对象。由于每个线程只能写入自己的TLAB,因此不需要同步。TLAB默认情况下处于启用状态,但如果您疯了,可以随时使用-XX:-UseTLAB调整标志将其禁用。Java线程本地分配缓冲区可以用《 icon
  • 近年来,instagram.com发生了许多变化-我们推出了故事,过滤器,创建工具,通知和直接消息传递,以及许多其他功能和增强功能。但是,随着产品的增长,副作用是我们的网络性能开 icon
  • 制作有用的基准测试很难,但是有一些工具和模式可以帮助您。几乎每个开发人员都知道Donald Knuth在1974年提出的“  icon
  • AllocatePrefetch是JVM的分配预取选项。所有Java垃圾收集器都使用称为缓冲分配的技术,通过将所需的分配大小添加到当前分配指针(缓冲位),并检查该分配大小是否超出了分配指针指向的区域限制,以此来执行分配。在并行线程分配的环境中运行时,这会带来一种复杂性。简单地让所有线 icon
  • 使用以下任一方法来评估组件级渲染性能:Chrome DevTools“性能”面板React DevTools分析器 尽量减少不必要的组件重新渲染 icon
  • 让我们看一下以下基本代码:if icon