暂无图片
1GB的4字节整数,执行一次快速排序需要多少时间?
我来答
分享
中天
2023-03-01
1GB的4字节整数,执行一次快速排序需要多少时间?

1GB的4字节整数,执行一次快速排序需要多少时间?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新

Google的Jeff Dean提出了一种排序性能分析方法:排序时间=比较时间(分支预测错误)+内存访问时间。快速排序过程中会发生大量的分支预测错误,所以比较次数为2的28次方*log(2的28次方)约等于2的33次方,其中,约二分之一的比较会发生分支预测错误,所以比较时间为1/2*2的33次方*5ns=21s;另外,快速排序每次分割操作都需要扫描一遍内存,假设内存顺序访问性能为4GB/s,所以内存访问时间为28*1GB/4GB=7s。因此,单线程排序1GB4字节整数总时间约为28s。

暂无图片 评论
暂无图片 有用 8
打赏 0
暂无图片
大大刺猬

我的内存sysbench压测1K(seq), 速度约为 4GB/s
使用numpy排序1GB的4字节整数, 耗时20秒
image.png
sysbench压测参数

sysbench --test=memory --memory-block-size=1k --memory-total-size=100G --memory-access-mode=seq run
复制

python代码

import sys,random,time import numpy as np aa_4b = np.array([random.randint(1,2**31) for x in range(1024*1024)], dtype=np.int32) #1M, 再翻8翻(2^8=256) for x in range(8): aa_4b = np.append(aa_4b,aa_4b) aa_4b.size sys.getsizeof(aa_4b) starttime = time.time() aa_4b.sort() endtime = time.time() print('cost:',round((endtime-starttime),3),' s')
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
数据库在请求量过大的时候 会不会导致死机?嵌入式系统
回答 1
已采纳
只要超过CPU和IO的处理能力,会死机的。
分布式数据库的主要优缺点分别是什么?
回答 5
优势:能力上限高,基于良好的扩展性基础上,还能提供原生分布式能力。劣势:相比传统产品的存在时间短,仍需大量的场景和时间去打磨。
通过视图可以更新数据表中的任何数据,对吗?
回答 2
已采纳
出错了。
在Lava中部署OushuDB时添加机器root密码不一致,或没有root密码怎么办?
回答 1
密码必须改为一致,在所有自动部署成功后可以再修改为其他不一样的。自动部署功能需要运行yum,而yum需要root权限,并且为了整体集群的控制,机器之间会做互信,如果实在不能获得root密码,可以考虑用
数据库主从里 binlog文件名称 一般设置为一样还是不一样?
回答 2
我们一般是以主机名为前缀,这样便于识别,其实没有硬限制。
如何实现数据库层次查询功能?
回答 1
问这么多问题,到底出于什么目的呢?我很好奇...
Halo数据库有性能诊断工具吗?
回答 1
已采纳
Halo数据在Oracle数据库兼容模式时,有性能诊断工具叫HWR,与Oracle的AWR功能类似,能够产生html的数据库分析报告,使用方法也与AWR类似。HWR可以帮助我们找出Halo数据库中大多
两个不同的数据库,但是实例名是一样的,这两个实例能做主从同步吗?
回答 1
已采纳
单机可以做主从,但是意义不大,仅限于测试环境学习。
数据库大, 文件跟文件组哪个更好?
回答 1
大多数数据库在只有单个数据文件和单个事务日志文件的情况下性能良好。如果使用多个文件,请为附加文件创建第二个文件组,并将其设置为默认文件组。这样,主文件将只包含系统表和对象。若要使性能最大化,请在尽可能
有什么数据库支持Hadoop原生数据库
回答 1
OushuDB新一代数据仓库•支持与ApacheHadoop兼容的各大发行版本:HDP,CDH等等•存储基于ApacheHDFS分布式文件系统•支持新一代可插拔存储框架,用户可以自己快速扩展新的外部数