如何提高System.currentTimeMillis()粒度?

2024-02-20

如何在不提供非常大的数组作为输入的情况下实现它?我正在测量不同算法的运行时间,对于 20 个元素的数组,我得到非常(相同)相似的值。我尝试将总时间除以 1000000000 来清除E然后使用了 16 个镜像,我复制了输入数组并为镜像再次执行它。但堆排序和快速排序仍然是一样的。有什么想法不需要写多余的行吗?

示例输出:

Random array:
MergeSort:
Total time 14.333066343496
QuickSort:
Total time 14.3330663435256
HeapSort:
Total time 14.3330663435256 

如果您需要代码片段,请通知我。


对于您的直接问题,请使用System.nanoTime() http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#nanoTime--以获得更精细的时间戳。

对于如何获得更好的基准的根本问题,您应该在更大的数据集上重复运行基准。即使使用更精确的时钟,执行大约 14 毫秒的基准测试也会非常嘈杂。也可以看看如何用 Java 编写正确的微基准测试? https://stackoverflow.com/q/504103/113632

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何提高System.currentTimeMillis()粒度? 的相关文章

随机推荐

  • ionic-2 本机 youtube 视频播放器插件安装失败?Cordova 错误:无法获取插件?

    你好 我正在构建一个 ionic 2 应用程序 它显示一些 YouTube 视频内容 我研究了 ionic 本机文档https ionicframework com docs native youtube video player http
  • 为什么使用 Android ADB shell 的 SQLite 3 命令返回“权限被拒绝”?

    具体来说 我试图使用sqlite3使用 ADB shell 命令对我正在构建的 Android 应用程序的数据库运行一些查询 我不断收到 sqlite3 权限被拒绝 我正在从 Google 购买的 Nexus One 上进行开发 我的手机需
  • C Tokenizer(当字段丢失时它也会返回空。耶!)

    也可以看看 对于 C 来说 这是一个好的 substr 吗 https stackoverflow com questions 874015 updated is this a good substr for c strtok 和朋友跳过空
  • Velocity 模板似乎无法使用 UTF-8

    我一直在尝试使用具有以下内容的速度模板 S bj ct item 除了两个 Unicode 字符的翻译之外 一切正常 命令行上打印的结果字符串如下所示 S bj ct foo 我在速度网站和网络上搜索了这个问题 并提出了不同的字体编码选项
  • 如何使用 Beam 读取大型 CSV?

    我正在尝试弄清楚如何使用 Apache Beam 读取大型 CSV 文件 我所说的 大 是指几 GB 因此将整个 CSV 一次性读入内存是不切实际的 到目前为止 我已经尝试了以下选项 使用 TextIO read 这不好 因为带引号的 CS
  • 在 shouldChangeCharactersIn 中将文本设置为 UITextField 后,光标移至末尾

    我有文本标签 其中有电话号码 当用户输入时 我会屏蔽电话号码 以便shouldChangeCharactersIn功能 我得到用户输入 字符串 将该输入添加到已写入的文本中UITextField 屏蔽文本并将其设置为UITextField
  • Trello iPhone 应用程序是如何开发的?

    我想知道 Trello iPhone 应用程序正在使用哪些库或框架 是一个带有JS框架的webapp吗 如果有 是哪一个 还是本土的 这里有哪些框架 我很好奇 因为我真的很喜欢它的用户界面 并且在互联网上搜索过但没有运气 我是 Trello
  • 我如何知道“ThisWorkbook”是“工作簿”?

    我正在使用 VBIDE API 并且不能假设主机应用程序是 Excel 或任何 Office 应用程序 所以我所知道的是我正在看一个VBComponent 并且它的Type is vbext ct document 在VBE中立即窗格我可以
  • Facebook批量请求多个用户

    我有一个来自 Facebook 的用户数据库 我想使用批量请求获取他们的数据 兴趣和朋友的生日 现在我可以为 1 个用户发出 1 批请求 但考虑到没有 我的应用程序中的用户数量巨大 肯定会达到极限 我想知道是否有办法在批量请求中获取多个用户
  • 在后面的代码中创建旋转轴标签的样式

    我需要创建一个旋转 x 轴标签的样式 我找到了这个例子 轻松旋转 Silverlight WPF Toolkit 图表的轴标签 http blogs msdn com b delay archive 2010 03 06 turn your
  • 桌面上是否有元标记或类似视口初始比例的东西?

    我知道您认为这是一个奇怪的请求 但是我目前正在与一位客户打交道 他给了我一个模板 并在浏览器中看到它并完成所有 HTML 后决定将其缩小 70 从而把我们俩所做的所有工作都抛到了九霄云外 如果我可以将比例调整为 0 7 70 那就完美了 项
  • Java字符串在数据库中保存为unicode[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有关您编写的代码的问题必须描述具体问题 and 包含有效代码重现它 在问题本身中 看SSCCE org http sscce org 以获
  • Pivotal tc Server v.3.1 无法启动

    我最近下载了STS我尝试启动 TC 服务器 但出现以下错误 Server Pivotal tc Server Developer Edition v3 1 failed to start Error Could not find or lo
  • 获取当前片段并保存 onSaveInstanceState() 方法以实现屏幕方向

    我有一个包含多个片段的活动 我还使用 actionbarSherlock 作为我的选项卡 它也连接到片段 我的问题是当我要旋转屏幕 即从纵向到横向 反之亦然 时 我的活动将再次被调用 因此它会重新启动我的活动 我不想重新启动我的活动 而只是
  • 为所有齐射请求设置自定义标头

    重写 getHeaders 可以在必要时向请求添加自定义标头 但是如果总是需要设置 X 标头怎么办 例如静态身份验证令牌 JsonObjectRequest req new JsonObjectRequest URL new JSONObj
  • postgresql 9.2 中 varchar(n) 的最大长度是多少?最好使用 varchar(n) 或 text?

    您好 我正在使用 postgresql 9 2 我想使用 varchar n 来存储一些长字符串 但我不知道 varchar n 支持的最大字符长度 哪一个更好用 你能给我推荐一下吗 谢谢 tl dr 1 GB 每个字符 实际上 代码点 可
  • C++0x 标准如何定义 C++ Auto 多重声明?

    嗯 我对即将推出的 C 0x 标准中的多个自动声明有点困惑 auto a 10 b 3 f c new Class 我在某处读到这是不允许的 原因是 因为不清楚连续声明是否应该与第一个声明具有相同的类型 示例中为 int 可能的翻译1 in
  • 在 Julia 中将类型参数引用为函数参数

    我正在尝试在 Julia 中创建 integer mod p 类型 我确信已经有一个包用于此 这只是个人练习 type Intp p v Int8 end function add a Intp p b Intp p return Intp
  • 蚂蚁串比较

    我在 ant 中有一个脚本 我需要按字典顺序比较 2 个字符串 就像是 1 2 3 compareTo 1 2 4 我找不到办法这样做 有什么想法吗 我正在使用 ant 1 8 和 ant contrib Thanks 为了使此解决方案发挥
  • 如何提高System.currentTimeMillis()粒度?

    如何在不提供非常大的数组作为输入的情况下实现它 我正在测量不同算法的运行时间 对于 20 个元素的数组 我得到非常 相同 相似的值 我尝试将总时间除以 1000000000 来清除E然后使用了 16 个镜像 我复制了输入数组并为镜像再次执行