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

Mac OS上的Java Random Slowdowns

罗韬
2023-03-14
问题内容

我有一个Java程序,用于将多个处理器分成多个部分并在不同的线程中运行,从而在多个处理器上进行一组科学计算。这个问题是微不足道的,因此线程之间没有争用或通信。他们访问的唯一通用数据是一些不需要同步访问权限的共享静态缓存,以及硬盘上的一些数据文件。线程也不断地写入磁盘,但要分开文件。

我的问题是,有时我运行程序时速度很快,有时当我运行完全相同的程序时运行速度非常慢。如果我看到它运行缓慢并按ctrl-
C并重新启动它,通常它将再次开始快速运行。它似乎在运行初期就将自己设置为慢速模式或快速模式,并且从未在模式之间切换。

我已经将它连接到jconsole,这似乎不是内存问题。当我发现它运行缓慢时,我尝试将它连接到探查器,但探查器无法连接。我曾尝试使用-
Xprof运行,但慢速运行和快速运行之间的转储似乎并没有太大不同。我也尝试过使用不同的垃圾收集器以及内存空间各个部分的不同大小。

我的机器是具有条纹RAID分区的mac
pro。无论是缓慢运行还是快速运行,cpu的使用率永远不会降低,如果线程花费太多时间阻止从磁盘读取数据,您会期望它的使用,因此我认为这可能不是磁盘读取问题。

我的问题是,我的代码有哪些类型的问题可能会导致这种情况?还是这可能是操作系统问题?我无法在Windows机器上复制它,但是我没有具有类似RAID设置的Windows机器。


问题答案:

您可能拥有陷入无尽循环的线程。

尝试连接VisualVM并使用线程监视器。

https://visualvm.dev.java.net

问题发生之前,您可能必须连接。



 类似资料:
  • 我在MacOS Big Sur(当我有Catalina时,问题也存在)和MAMP下有一台Mac电脑 我想创建一个虚拟主机 以下是我所做的: 在Application/MAMP/conf/apache/httpd中。conf,我取消了对Include/Applications/MAMP/conf/apache/extra/httpd vhosts行的注释。形态 这是我的应用程序/MAMP/conf/

  • > 操作系统版本:macOs Mojave 10.14.2 gdb:8.2.1(使用brew安装安装gdb) 我已成功地与 协同设计--应享权利gdb-entitlement.xml-fs gdb-cert$(which gdb) 我有这样的简单代码: int main(int argc,char*argv[]){std::cout<<“hello,world”< 那么广发挂吧 zhifandem

  • 我能做什么来解决这个问题?我要尽快处理这件事。 谢谢

  • 我被告知从其他stackoverflow帖子将遗留配置文件切换到核心配置文件,但我似乎找不到这样做的方法。所以我假设一个更新的错误帖子来帮助我找到一个方法。 代码: 我一直收到这个错误 回溯(最近一次调用): 我似乎找不到任何方法来解决这个问题。我是OpenGL/PyOpenGL新手,找不到任何提出大致相同问题的帖子

  • 当我跑的时候 上面写着:

  • 我正在使用IntelliJ,我想运行一个以前在Linux中运行的JavaFX项目,我导入了库,并使用了vm参数 <代码>--模块路径/用户/frenk/桌面/javafx-sdk-17/lib--添加模块javafx。控件,javafx。fxml 但我一直收到同样的错误 我看到的所有答案都与vm params有关,所以我无法弄清楚可能是什么问题,我使用java 16作为运行时和macOS bigs

  • 本小节我们将介绍如何在 MacOS 平台安装 Java 。 如果你想在其他平台安装 Java,请查看对应平台的安装教程: 在 Windows 上安装 Java 在 Linux 上安装 Java 1. 下载安装包 我们首先打开 Oracle 官网的 JDK 下载地址,找到 Java SE 14 版块,点击 JDK Download 按钮。 点击 JDK Download 按钮后我们会跳转到 JDK

  • 问题内容: 我正在尝试遵循本教程来启用对MySQL的远程访问。问题是,文件应该放在哪里?我正在使用Mac OS X Lion。 问题答案: MySQL论坛上的该线程说: 默认情况下,OS X安装不使用my.cnf,而MySQL仅使用默认值。 要设置自己的my.cnf,您可以直接在/ etc中创建一个文件。 OS X在提供了示例配置文件。 而且,如果您在此处找不到它们,MySQLWorkbench可