努力工作,认真生活。


Benchmark


  1. Linux主机性能测试方法

    背景 最近打算用躺家吃灰的树莓派4B搭一个NAS,用来快捷方便地访问和备份一些资源。由于备选的硬件(芯片、硬盘、网线、路由器等)和软件(内网穿透技术)的技术选型比较多,这时候就需要有一个能简单评估服务性能的方法。因此简单搜寻了一下常见方案,方便在技术选型时有个统一的对比标准,并且对一些常见指标能在数量级上有一些感性的理解。 硬盘 对于硬盘的读写速度测试,首先我们需要注意根据读写的实现细节不同,测试出的结果会有很大的差别。例如对于读来说,是否走缓存读、缓存的大小如何;对于写来说,是否只写缓…

    Linux, Raspberry Pi, Benchmark阅读全文

  2. 从一个诡异的问题看JVM动态反优化

    前言 前一段时间在做代码性能比较的时候用到了jmh这个工具,原本以为拥有了这个方便的工具就能hold住java微基准测试这个命题。但是事实上,用着用着就发现自己的理解还非常不深入,有很多在测试的时候难以解释的现象。于是查阅了相关资料,才发现这里面的水比我想象要深,趁着记忆还热乎,赶紧记录一下。 动态编译VS静态编译 java作为一种动态编译语言与c/c++这种静态编译语言有本质的不同。静态编译语言是在编译时就已经对代码做好了编译优化(比如C/C++在编译时指定-O1 -O2 -O3参数)…

    Java, Benchmark, JMH阅读全文

  3. 字节数组转字符串技巧以及其JMH性能分析

    前言 前几天在面向 stackoverflow 编程时,遇到了一串有点诡异的代码: private String method1(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte aByte : bytes) { sb.append(Integer.toString((aByte & 0xff) + 0x100, 16).substring(1))…

    Java, Benchmark, JMH阅读全文

  4. MySQL插入效率比较

    现在我需要在Mysql里插入大量的数据大约1000w,目测会比较耗时。所以现在就像测试一下到底用什么插入数据的方法比较快捷高效。 下面就针对每一种方法分别测试不同数据量下的插入效率。测试数据库的基本与操作如下: mysql> create database test; Query OK, 1 row affected (0.02 sec) mysql> use test; Database changed mysql> create table mytable(id int primary…

    MySQL, Benchmark阅读全文