1
killgfat 137 天前 via Android
硬盘读写吃满了吗
|
3
ochatokori 137 天前 via Android
@xdcatus #2 这是你网络带宽瓶颈了吧
|
4
catalysia 137 天前 2
主流系统的 cpu 利用率( windows mac 安卓 ios linux )并不完全代表 cpu 的繁忙程度
现代 cpu 十分复杂 每种晶体管都有自己独特的作用 所以硬件调度器会根据预先的判断来给正在进行的工作一个预期 对每个晶体管是否繁忙进行加权 最后生成一个百分比 这个百分比就是 cpu 利用率 所以 cpu 利用率低 也并不代表 cpu 就不繁忙 解压缩就是其中之一 cpu 的内从控制器要进行复杂的从硬盘到内存再到 3 级缓存 2 级缓存的调度工作 而且类似 7z 等压缩算法 是一环套一环的 你必须完成了前面的才能解压缩后面的 这就导致内存控制器和三级缓存很容易跑满 由于 cpu 利用率对内存控制器和三级缓存的加权并不高 所以才会让你觉得 cpu 不忙 但解压缩速度却不能更快 使用更大的三级缓存的 cpu 比如 x3d 系列 或者更高带宽的内存 可以加快解压缩速度 |
5
yyzh 137 天前 via Android
@catalysia 别想那么多,单纯楼主这个只是带宽问题罢了.不过的确现在压缩解压缩算法一堆都是一核有难 N 核围观的.遇到大小核的 U 如果调度出问题了情况更糟
|
6
charlie21 137 天前 via Android
视频格式转换的时候 cpu 利用率是很高的
|
7
Love4Taylor 137 天前
ZSTD:
zstd -T$(nproc) 或 export ZSTD_NBTHREADS="$(nproc)" XZ: export XZ_OPT="-T$(nproc)" 保证你 CPU 起飞 |
8
ysc3839 137 天前 via Android
@catalysia 否的,据我所知大多数情况下用户能看到的“CPU 利用率”就仅仅是一段时间内 CPU 非空闲时间所占百分比。即使是最简单的无限循环,用户看到的也是 100%。你说的需要进行复杂计算得出的真实 CPU 使用率或许是存在的,但是用户用工具看到的一般不是这个。
另外 Windows 任务管理器有个“特性”,就是看到的 CPU 使用率是乘以了当前 CPU 频率比例的。比如说 CPU 基础频率是 2GHz ,目前频率是 4GHz ,那当 CPU 使用率是 50%时,实际会显示 100%。 |
9
min 137 天前
压缩解压缩对 cpu 要求偏低,无法达到你的充分利用 cpu 的期望,就不是个吃 cpu 的任务类型
|
10
catalysia 137 天前
@ysc3839 并不是
微软就曾经出面说过 intel 的 atom 和标准 cpu 以及高通 arm 和 amd 的算法都不一样 不能进行横向对比 一个比较明显的例子是 在 windows xp 酷睿和 Phenom 时期 跑 julia 的时候 amd 的 cpu 会显示跑满了 cpu 而 intel 的标压产品就不会显示跑满 atom 则和 amd 的一样会显示跑满 这是因为 intel 和 amd 的设计原理和权重不一样 对纯浮点算法 intel 的 cpu 可以再跑个整数指令 而 amd 的 3d now !指令集会接管 julia 算法的大多数运算 当然 windows 11 后微软重构了任务管理器的代码 win11 的 cpu 利用率的实现方式似乎和之前有区别了 大多数第三方工具读取利用率的时候都需要调用额外的 api 不过我仍然不认为微软纯使用了占空比 |
12
daimiaopeng 137 天前
换个软件,或者试一下在任务管理器把压缩软件 cpu 的优先级设置为高
|
13
sandylaw 137 天前
开启多线程:
echo "${ALLFILES[*]}" | xargs 7z a -t7z -mx=6 -mmt=on ${VERSION_NAME}.7z |
14
kokutou 137 天前
解压是单核的, 好多算法都是这样的...
如果你单核性能差 那就是很慢 你看看硬盘占用吧,110m 不就是千兆网, 已经跑满了 |
15
ccpp132 137 天前
具体情况不清楚很难排查
比如一个可能的情况是解压出来大量的小文件,导致大部分时间花在创建新文件这种 i/o 操作上。这些其实都依赖额外的信息从描述是判断不出来的 |