标签: jvm

使用高 DPI 时如何修复 IntelliJ IDEA 中的字体抗锯齿?

我使用了更高的 DPI 设置,这使得 IntelliJ(实际上是 Android Studio)确实弄乱了字体

我使用MacType,它可以在其他地方精美地呈现我的字体,但我猜 Java VM 以某种方式拦截了它或其他什么,这让我很伤心。

fonts anti-aliasing jvm intellij-idea

80
推荐指数
1
解决办法
11万
查看次数

Android 或 Java 是否因为在虚拟机上运行而使用更多功能?

由于Android应用程序运行在基本上是虚拟处理器的JVM(Dalvik VM)上,并且每个虚拟指令都必须映射到底层芯片组的本机指令,因此这种映射是否会由于这种映射的开销而导致更多的功耗?

这个问题可以扩展到 Java,也可以表述为“Java 应用程序是否使用更多功能?”。这就是 Android 手机与其他平台/手机相比电池寿命如此惊人的原因吗?

编辑:根据答案,我澄清了几点,因为我错误地将 JVM 和 Dalvik 互换使用。在这一点上,我谈论 Java 只是为了询问它是否使用更多功率,如果是,那么这在概念上是否也适用于 Android 并且是否会导致电池寿命缩短。

上下文:引自维基百科:

  1. Java 字节码类似于 C 代码的汇编语言。
  2. 从编译器的角度来看,Java 虚拟机只是另一个带有指令集 Java 字节码的处理器,可以为其生成代码。
  3. JVM 具有堆栈架构。Dalvik 是一个进程虚拟机,它与 JVM 的虚拟化类型不同,具有寄存器架构。

由于 Java 编程语言被编译为字节码(类似汇编)并在虚拟处理器上运行,因此它提供了真正的软件代码可移植性。此外,由于有一个适用于 Linux 的 JVM,并且 Linux 已被移植到开放硬件上,因此这种组合可以在整个堆栈中提供真正的应用程序可移植性。

功率:问题基本上归结为这一点 - 对于软件代码或应用程序的相同功能集,您的 CPU 时钟周期的百分比归因于运行时环境。这是现代 JVM 的即时编译环境,如果字节码被编译为底层芯片组的本机指令,那么运行时应该只在 jit 编译期间处于活动状态。那么在运行时环境中使用了多少 CPU 时钟周期,这预计会导致功耗开销。我只对功耗方面感兴趣,而不是与静态类型和构建语言相比的相对性能,并了解 Java 的优势。可能相关的子问题:

  • Java 运行时是否使用 libc 来实现其功能?
  • 这些与功耗相关的点是否会转化为 Dalvik VM 和 Android?
  • 与其在不谈论屏幕和无线芯片组的情况下概括 Android 的电池消耗不佳,不如谈谈 iPhone 5 如何拥有 1440 mAH 电池,与现代 Nexus 手机相比,它很小。整个思路(Java、虚拟处理器、指令映射、Android)之所以出现,是因为一位忠实于 iphone 的朋友声称这可能是他的 iphone 电池寿命比我的(很棒的)nexus 更长的可能原因。

无论如何,感谢您的回答。

java power android jvm virtual-machine

14
推荐指数
2
解决办法
5552
查看次数

OpenJDK 和 Oracle 之间是否存在性能差异?

Oracle 最近决定开始对其 JVM 的商业用途收费。

我们的团队已经开始改用 OpenJDK,并且发现一切似乎都运行良好,只是我们的性能变慢了。

我们的服务器是 linux 服务器,根据我们的性能团队,

我们已经观察到大多数 java 调用的速度很慢。我们查看了日志并调查了一些调用,我们没有看到任何异常或错误,只是速度很慢。

有没有其他人有任何关于这是否属实的数据,即 OpenJDK 平均比 Oracle JVM 慢?

回答:对我们来说,这个问题被确定与haproxyUbuntu 和 OpenJDK 相关。如果将这 3 件事结合起来,我们会在每个套接字连接上看到额外的 5 毫秒延迟。改变这三个因素中的任何一个,性能就会恢复。

我也会将此作为答案发布,因此可以在两个地方找到它

jdk jvm openjdk

9
推荐指数
1
解决办法
9476
查看次数

是否可以预加载 JVM 以更快地启动小的一次性 Java 应用程序?

预期算法:

  1. 您在没有实际应用程序的情况下启动 JVM(只告诉它加载一些 jar),它加载并侦听套接字并在后台等待。
  2. 当您启动应用程序 ( preloaded_java -cp /usr/share/java/....jar:. qqq.jar) 时,它会连接到现有加载的 JVM,加载其他 jar(如果有)并执行主类。
  3. preloaded_java 只是路由输入和输出并处理中断等。

更新实施了概念证明:http : //vi-server.org/vi/code/prejvm/

$ clojure prejvm.clj&
[1] 2883
$ nc 127.0.0.1 7711 <<< '{"mainclass" "test.Hello"}'
$ nc 127.0.0.1 7712
java.lang.ClassNotFoundException: test.Hello
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    ...
    at clojure.main.main(main.java:37)

$ nc 127.0.0.1 7711 <<< '{"classpaths" ["file:///home/vi/code/prejvm/"], "mainclass" "test.Hello"}'    
$ nc 127.0.0.1 7712
Hello, world; number of args is 0
qwe q e32e qda
qwe q e32e qda

$ nc 127.0.0.1 7711 <<< '{"classpaths" ["file:///home/vi/code/prejvm/"], "mainclass" …
Run Code Online (Sandbox Code Playgroud)

java jvm

7
推荐指数
1
解决办法
2855
查看次数

查找当前JVM的路径

我需要找到在我的 Windows 机器上运行的当前 Java VM 的路径。我怎样才能做到这一点?

windows java jvm

7
推荐指数
1
解决办法
3万
查看次数

我的 Windows 7 上有 Java 虚拟机吗?

如何确定我的 Windows 7 上是否安装了 Java 虚拟机?

java jvm

4
推荐指数
2
解决办法
5万
查看次数

英特尔酷睿 i3 是否使用动态 CPU 频率切换?

我正在使用 VisualVM,它是一个 Java 虚拟机分析器。我正在尝试启动应用程序 jvisualvm 并给出消息

在此处输入图片说明

我正在研究型号为 VPCEA24FM 的 Sony Vaio 笔记本电脑,它具有英特尔酷睿 i3 处理器。

我的问题

如何确定我的 CPU 是否使用动态 CPU 频率切换,如果是,我应该关闭它以及将要权衡什么以及如何权衡?

sony-vaio jvm intel-core-i3

2
推荐指数
1
解决办法
1311
查看次数

如何更新我的 Java?

我已经下载了Java SE Runtime Environment 6u24Java SE Development Kit 6u24,但是当我去 CMD 并输入java -version它仍然说:

java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

编辑:是的,我下载后安装了它们。

编辑:这就是我的 PATH 样子

PATH=C:\oracle\ora92\bin;C:\orant14\bin;C:\orant5a\bin;C:\oracle\ora92\jre\1.4.2\bin\client;C:\oracle\ora92\jre \1.4.2\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\WINDOWS\system32;C:\WINDOWS ;C:\WINDOWS\System32\Wbem;C:\Program Files\Wave Systems Corp\Dell Preboot Manager\Access Client\v5\;C:\orant5a\jdk\bin;C:\orant14\jdk\bin;C: \Program Files\QuickTime\QTSystem\

windows java path jvm

1
推荐指数
1
解决办法
1360
查看次数

什么是java虚拟机,它和Java有什么关系?

我试图在我的 Macbook Air 上安装 eclipse。当我运行安装程序时,我收到此消息

在此处输入图片说明

似乎没有像其他应用程序那样专门用于 JVM 的官方页面。当我搜索“安装 jvm”时,我被引导到“下载 java ”页面。

无论如何,我从该页面安装了最新的 Java,但该消息仍然存在,这让我更加困惑。

问题是:

  1. 如果 JVM 旨在“在任何地方”启用 Java,那么在我安装最新的 Java 之后不应该已经安装了吗?

  2. 当我在 google 周围搜索时显示了很多页面,它们看起来都不是真正的页面,我什至jvm在 java.com 中搜索,但没有任何有用的内容出现。

    为什么这么难找到这么流行的工具,我应该去哪里下载JVM?

java jvm jre macos

1
推荐指数
1
解决办法
7505
查看次数