当前位置: 首页 > 面试题库 >

用Java生成CPU负载

景嘉志
2023-03-14
问题内容

我正在进行一些吞吐量测试。我的申请必须

  1. 从JMS读取
  2. 做一些处理
  3. 写入JMS

我的目标是模拟#2,“一些处理”。也就是说,在转发事件之前引入延迟并在给定时间(例如500ms)内占用CPU。

天真的方法是Thread.sleep(500)。这将导致正确的执行延迟,但不会占用CPU。

计算斐波纳契数是一种选择。 有没有人使用任何有趣的技术只是为了让CPU在给定时间内忙碌?

理想的特征是:

  • 执行各种指令,而不是(例如)仅在循环上旋转
  • HotSpot VM不会无所优化
  • 有一个简单的方法可以向上或向下调整处理时间(完成时间显然会因硬件而异)

问题答案:

通过调用Cipher.update()加密字符串(循环)。根据定义,加密算法很难优化。唯一的问题是,您需要执行一些非常规的设置。我将此答案标记为社区Wiki,以便最近编写该答案的人可以填写它。



 类似资料:
  • 问题内容: 有没有一种方法可以在不使用JNI的情况下获取Java下的当前cpu负载? 问题答案: 使用获取并调用它。

  • 我用JMeter创建了测试来测试幽灵博客平台的性能。Ghost是用Node.js编写的,安装在云服务器上,有1GB的内存和1个CPU。 我注意到在400个并发用户之后JMeter得到错误。到400个并发用户的负载是正常的。我决定增加CPU,增加了1个CPU。 但是错误重现并添加了2个CPU,总共4个CPU。问题发生在400个并发用户之后。 我想知道是否有可能平衡CPU之间的负载?

  • 在我的Kubernetes安装中,我可以看到cAdvisor为每个POD/容器报告一个称为“CONTAINER_CPU_LOAD_AVERAGE_10S”的度量值。我得到诸如232、6512等值。 那么,这里CPU负载的计量单位是什么呢?对我来说,“CPU负载”和“CPU使用”是可以互换使用的,所以我不明白为什么它不是一个介于[0-100]之间的值? 更新: 这里我放了cAdvisor日志中的相关

  • 我试图用JProfiler分析一个J2EE应用程序。 我无法在JProfiler的远程检测选项卡下检查CPU负载。下面是屏幕截图。有人能帮忙吗? 我甚至看了看这个和这个。 第一个链接非常具体地说明了在RSA中启用分析。但稍后会讨论如何为JVM启用分析。 有人能证实我对第二个的理解吗?

  • 今天,我发现我的服务器的cpu负载过高,而服务器只是在运行一个Java应用程序。 下面是我的操作步骤。 > 我使用命令查找应用程序的PID。pid为25713。 以下是我的问题: 为什么使cpu负载过高。 为什么在我使用命令后,cpu变得正常。 不止这一次,每一次。 当我执行命令时,打印的日志

  • 主程序的日志文件包含大量的getmore oplog查询-我猜主程序上的任何操作都会创建一个oplog查询。在我看来,这是太多的复制开销,但我没有任何关于MongoDB负载的经验,也没有任何关键数据。 由于安装程序将不得不容忍更多的生产负载,我的问题是,复制开销是否是预期的,即使是在次要服务器上,CPU负载增加这么高是否正常,还是我遗漏了什么?