我想了解哪种类型的操作对CPU负载的贡献不成比例,并且可以直观地了解常见操作的相对成本。为了尽量减少泛化,请假定使用Oracle 7 HotSpot JVM。
例如:
有什么技巧可以直观地了解典型操作的相对CPU成本?
关于您可以推荐的主题,有什么好读的书吗?
谢谢,
澄清
感谢您的早期答复,但请注意以下几点:
相反,我正在寻找有关CPU相对成本的指南,尤其是w.r.t.以上操作(假设“网络级”应用使用所有提及的操作数量相等-很多)。
例如,我现在已经:
...但是如何实例化新对象或满足监视器的要求呢?这些操作中是否有一个在规模上对CPU负载(例如,我不在乎延迟或堆大小)有重大贡献(占主导地位?)?
参考方案
我认为您当中写的相对CPU消耗如下:
1)索引数组;它很快;它只是在解决
2)监控器-更慢;挂起和等待的线程不会消耗CPU,切换消耗的CPU很少,但是比索引更多
3)如果对象很复杂并导致创建子对象,则创建对象的速度可能会很慢;创建一个new Object()
只是比线程切换慢一点;但也许我是错的,而且是相同的;无论如何可比
4)抛出/捕获异常非常慢;创建对象的速度要慢10-100倍
在哪里可以找到有关Sun JVM内部运行情况的信息? - java作为开发人员,我想知道调用虚拟方法与接口方法的成本是多少。现在,我知道为什么invokeinterface可以比invokevirtual慢一些,但是我想知道Sun是否在他们发布的改进了invokeinterface的JVM的最新版本中采用了新机制。我如何找到此类信息? 参考方案 收购了Sun的Oracle可以在其网站上的以下站点上找到有关HotSpot J…
与OpenJDK相比,Oracle商业Hotspot JVM具有什么性能优势? - java如本问题所述:OpenJDK vs Java HotspotVMOracle的商业Hotspot JVM本质上是OpenJDK,还有几个仅用于商业客户端的功能。但是-仅使用现成的硬件,这些额外功能是否真的有助于单机和/或小型集群上的性能?还是仅与具有特定组织需求的大公司以及具有自定义硬件的大型系统有关?我特别想问的是“ Java Flight Recorde…
我如何从堆转储中知道Java对象是在使用权空间还是eden空间 - java我有一个Hotspot JVM堆转储,我试图找出对象是否存在于权属空间,伊甸园空间或幸存者空间中,但我做不到。感谢有人可以帮助我。 参考方案 我认为你不能。从this论坛帖子中, 对不起,坏消息,堆转储均不包含有关 对象所在的空间查看此page中的Java堆转储的内容似乎可以确认该堆转储不包含生成信息,HEAP DUMP BEGIN (39793 objec…
可以在没有操作系统的情况下运行Java程序吗? - java我知道所有Java程序都由JVM执行。这使Java与所有操作系统兼容(一次编写,可在任何地方运行)。但是我可以在没有操作系统的情况下运行Java程序吗?也许只运行JVM?并且,如果可能,功能是否会受到任何影响?注意:我的主要问题是,java程序可以直接在硬件上运行(通过JVM)吗?我可以在计算机中“启动”任何低级别的JVM吗? java大神给出的解决方案 实…
Java堆设置 - java在阅读有关性能调整的一些说明时,在设置内存大小时确实注意到了一个建议:Java应用程序应该将初始永久生成大小和最大永久生成大小调整为相同的值,因为增加或缩小永久生成空间需要完整的GC。在设置堆大小时也给出了类似的建议,即-Xmx=-Xms。我的问题是,那么为什么我们要完全设置-Xms? 也, 如果我对-Xmx和-Xms使用不同的值,而不是当我对-Xmx和-X…