Tag: 基准测试

如何用Java测量基准测试中的磁盘速度

我想知道如何使用Java API测量磁盘速度。 随机读取,顺序读取和随机和顺序写入。 如果有人认为这不是一个真正的问题。 请在关闭之前解释一下。 谢谢

如何在不缓存的情况下测量文件读取速度?

我的java程序花了大部分时间来阅读一些文件,我想优化它,例如,通过使用并发,预取, 内存映射文件等。 没有基准测试的优化是没有意义的,所以我进行了基准测试。 但是,在基准测试期间,整个文件内容都缓存在RAM中,与实际运行不同。 因此,基准测试的运行时间要小得多,而且很可能与现实无关。 我需要以某种方式告诉操作系统(Linux)不要缓存文件内容,或者更好地在每次基准测试运行之前清除缓存。 或者可能消耗大部分可用的RAM(32 GB),因此只有很小一部分文件内容适合。如何操作? 我正在使用卡尺进行基准测试,但在这种情况下我不认为它是必要的(它绝不是微基准测试),我不确定它是个好主意。

从日食中的主要运行JMH时“没有匹配的基准”

我想通过在eclipse中将其作为Java Application运行来试用JMH的新function。 我导入并构建了jmh-samples项目。 编译的类以/ jmh-samples / target / generated-sources / annotations结束,/ target /中有几个JAR,并且从命令行运行microbenchmarks.jar像往常一样工作。 但是,当我执行main时,我总是得到 No matching benchmarks. Miss-spelled regexp? 有任何想法吗? 我使用的是0.3版

一些运行/ JIT的故障后Java循环变慢了?

所以我想对一些基本的javafunction进行基准测试,以便为这个问题添加一些信息: 将方法声明为静态会带来什么好处 。 我知道写作基准有时并不容易,但这里发生的事情我无法解释。 请注意,我并没有考虑如何解决这个问题,而是为什么会发生这种情况* 测试类: public class TestPerformanceOfStaticVsDynamicCalls { private static final long RUNS = 1_000_000_000L; public static void main( String [] args ){ new TestPerformanceOfStaticVsDynamicCalls().run(); } private void run(){ long r=0; long start, end; for( int loop = 0; loop<10; loop++ ){ // Benchmark start = System.currentTimeMillis(); for( long i = 0; i […]

对Java程序进行基准测试

对于大学,我执行字节码修改并分析它们对Java程序性能的影响。 因此,我需要Java程序—最好用于生产 – 以及适当的基准测试。 例如,我已经获得了HyperSQL并通过基准程序PolePosition测量其性能。 在没有JIT编译器的JVM上运行的Java程序。 谢谢你的帮助! PS:我不能使用程序来测试JVM或Java语言本身(例如Wide Finder)的性能。

Java基准测试工具

我编写了一个小型java应用程序,我需要获取性能指标,如内存使用情况,运行时间等。是否有任何简单易用的性能测量工具?

Java Applet可以发现多少硬件细节?

我正在编写一个Java applet,以便在不同的硬件下以不同的方式运行。 例如,如果我知道计算机有大量的RAM但处理器很弱,我可以改变一些时间内存权衡的平衡。 能够发现运行applet的CPU的确切品牌和型号可能会有所帮助。 拥有这些信息将使我能够针对不同的系统对我的软件进行基准测试并找到瓶颈。 一般来说我正在寻找的是: 核心和/或处理器的数量 32位与64位CPU CPU缓存行大小 L1,L2,L3缓存的大小 设置缓存的关联性 TLB的大小 关于CPU的精确制造/型号信息 FSB信息 RAM的数量 交换/虚拟内存量 正在运行applet的JVM 操作系统运行JVM 系统负载 已使用/未使用的Kernal线程数 互联网连接的带宽 内存可用 显卡正在使用中 如果正在显示操作系统 正在使用的网络资源 是否有任何此类信息都包含在Java Applet中。 是否有用于查找此类信息的库? Applet基准测试工具来发现/猜测其中的一些? 你能想到任何聪明的技巧吗? 他们的计算机硬件的任何方面都是阻塞的。 也就是说,Java applet可以通过尝试访问它并被拒绝(可能是特定的TCP端口或图形加速器)来检测某些内容正在使用或不可用。 免责声明:我知道关心硬件违背了不关心硬件的Java意识形态。 虽然评论指出这可能对其他阅读此问题的读者有所帮助,但请注意,这些答案并不是我想要的。 编辑 添加了其他信息: java.lang中。 management提供有关运行JVM的系统的各种信息。 java.lang.management。 OperatingSystemMXBean提供: getAvailableProcessors()可用处理器的数量等效Runtime.availableProcessors() getSystemLoadAverage()系统上的平均负载,即系统最后一分钟的平均负载。 java.lang.management。 ManagementFactory getGarbageCollectorMXBeans()返回GarbageCollectorMXBeans的列表。 可以查询每个GarbageCollectorMXBean以获取以下信息: getCollectionCount()使用此bean发生的gc数。 getCollectionTime()在gc之间经过的近似累计时间(以毫秒为单位)。 (注意:Java虚拟机实现可能使用高分辨率计时器来测量经过的时间。) getName()内存管理器的名称。 getMemoryPoolNames()此gc管理的内存池。 getThreadMXBean()返回ThreadMXBean ,它提供: getCurrentThreadCpuTime()以毫秒为单位返回当前线程的总CPU时间。 […]

什么是Boilerplate代码,热门代码和热点?

我知道这些术语用于表现成就。 这一天我正在研究这个问题,并试图从互联网上了解这些,但没有得到任何能够在现实世界发展情景中清楚地呈现这些概念和存在这些问题/概念的例子。 有人可以彻底解释这些术语,示例场景,以及可能使用这些概念和术语的位置。 谢谢。

用java创建快速/可靠的基准测试?

我正在尝试用java创建基准测试。 目前我有以下简单的方法: public static long runTest(int times){ long start = System.nanoTime(); String str = “str”; for(int i=0; i<times; i++){ str = "str"+i; } return System.nanoTime()-start; } 我目前在另一个循环中多次进行此循环,该循环多次发生并获得运行此方法所需的最小/最大/平均时间。 然后我在另一个线程上开始一些活动并再次测试。 基本上我只是想获得一致的结果……如果我有1000万次runTest循环,它似乎非常一致: Number of times ran: 5 The max time was: 1231419504 (102.85% of the average) The min time was: 1177508466 (98.35% of the average) The average time […]