登录 立即注册

找到358个回复 (用户: 无名啊)

无名啊 7楼回复 无名啊用 C++ 写了个简单的词频统计,为啥比 DuckDB 还慢一半呢。。 (04-23 00:26//)

@老虎会游泳,上一楼,想每段隔多几行回复来着。咋连续多行,被压缩成一行了。。

无名啊 6楼回复 无名啊用 C++ 写了个简单的词频统计,为啥比 DuckDB 还慢一半呢。。 (04-23 00:26//)

@老虎会游泳

std::cin >> word这个io可能比较慢

确实,我改成 std::getline(std::cin, word) 后,就由 28 秒 → 25 秒了。

你可以自行统计一下分段用时,看看输入、计算和输出各占比多少。

我简单测了测,读取 1 亿 15 长度字符串用时。

  • std::cin >> word:5.1 秒
  • std::getline(std::cin, word):2.2 秒
  • 手动开 64KB 缓冲区,每次 std::cin.read() 填充,std::memchr\nstr.append() 构造:1.4 秒

感觉输入上,这速度也可以了。

而且,我 strace 了一下 DuckDB,它也是要读到缓冲区里的,且缓冲区贼大,32MB。。且一定要填充完整 32MB,才干活。。

怪不得我说,一边解压大文本/脚本实时生成内容,一边喂给 DuckDB,怎么耗时会变长。。明明 writer 产生内容的速度还挺快的呀。。

也许输入输出是大头(因为stdio是同步锁定的)

我取消与 stdio 同步了:std::ios::sync_with_stdio(false);

这个确实很耗时间。不取消的话,总时间直接翻倍。。

把文件mmap到内存然后使用char*指针直接访问

如果想解压大文本,再通过管道喂给程序时,好像不能 mmap 了吧。。

无名啊 2楼回复 无名啊用 C++ 写了个简单的词频统计,为啥比 DuckDB 还慢一半呢。。 (04-21 02:01//)

@老虎会游泳DuckDB 也设成单线程的了。对比起来应该算公平的?

DuckDB 双线程时 14 秒,3+线程爆(笔记本 8GB 板载)内存了。。

老虎看这代码,有啥不合理的地方,才拖累性能,打不过 DuckDB 吗?

无名啊 5楼回复 tasy5kg小萌GIF 2024.3 新功能介绍:色度抠图、动态照片转视频 (03-21 14:28//)

@tasy5kg,你做这个不挣钱,那是希望写到简历里求职?

还是精神上得到放松,获得一种支持,有一种情绪补充来源?

还是?

无名啊 20楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-19 12:39//)

@老虎会游泳,老虎觉得 10 楼的想法,技术上有可能吗?

P/B 帧只是依赖前面已解码帧(如 I 帧)解码后的画面吗?

无名啊 10楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-08 23:10//)

@tasy5kg,对了,我有一些 HEVC 视频(假设都是 30 fps,1h 的视频),但仅开头处有 1 个 I 帧,其余全是 B 帧,导致无法随意拖动进度条。

你知道,如何每 10 秒,重编码一个 B 帧为 I 帧(仅需重编码 360 帧 ),而不是全部重编码(要重编码 10.8W 帧),来修复视频吗?

无名啊 9楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-08 23:00//)

@tasy5kg,看了看文档,libsvtav1 确实只支持 8/10 bit。。

但 avifenc 支持 12 bit。我搜索论坛里的 mp4 文件,选了其中三个,试了试转成动图,确实 12 bit 能比 8 bit 再小 20% 左右。

image.png(13.77 KB)

转码脚本(Windows 下可用 600KB 的 busybox-w32 来运行,要求 PATH 处能找到 ffmpegavifenc

speed=5
quality=50

for file in *.mp4; do
    for depth in 8 10 12; do
        ffmpeg -v quiet -i "$file" -strict -1 -pix_fmt "yuv420p$( [[ $depth == 8 ]] && echo '' || echo "${depth}le" )" -f yuv4mpegpipe - |
        avifenc -q "$quality" -s "$speed" --min 0 --max 63 --stdin "${depth}bit_${speed}s_${quality}q_${file%.*}.avif"
    done
done

文件所在帖子:

无名啊 8楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-08 22:13//)

@tasy5kg维基说:

Motion JPEG(……)是一种影像压缩格式,其中每一帧图像都分别使用JPEG编码。

看来那个动态照片,就是一堆 jpg 绑在一起。。怪不得尺寸这么大。。

我找了半个钟,没找到怎么转成视频的办法。。

无名啊 6楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-07 18:55//)

@tasy5kg,诶,K40 不是天生支持 HEIF 吗?直接用这个,压缩率就能挺高了的吧?

另外,尝试 12bit 了吗?体积有进一步下降吗?

无名啊 4楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-07 16:18//)

@tasy5kg,另外,好像 webp、HEIF、AVIF,都支持动图?

无名啊 3楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-07 16:17//)

@tasy5kg,我的意思是,AVIF 也是 AV1 编码的。

说不定你转视频时,也用 12bit,会发现体积又瞬间小一些了呢?(好像有 20% ?)

无名啊 1楼回复 tasy5kg2024年,将相册里的视频压缩为AV1编码 (02-07 13:51//)

@tasy5kg,以前我转 AVIF 照片时,意外发现,像素格式是 12bit 的话,体积会比 8bit、10bit 下降很多。。

但是 Windows 只支持 8bit 的。。

无名啊 10楼回复 张小强为林子hu60设计一套新皮肤可以吗? (2023-12-31//)

@胡椒舰长,只是 UBB 解析?

还是 UBB 和 Markdown 混合解析?

无名啊 37楼回复 希望自己长胖胖2023年最后一个月花了2023元买了两部华为手机! (2023-12-05//)

@希望自己长胖胖,现在手机贬值很快,

如果你愿意接受二手的话,不如去咸鱼瞅瞅。

比如,我手上 K40,前两年卖 2000 多的,骁龙 870,现在咸鱼 500 多就能买到了。。

无名啊 5楼回复 echo醉老仙请教sqlserver问题 (2023-11-27//)

@echo醉老仙,那就是,按照发件人分组,取最后发消息时间、消息总数?

SELECT MAX(time) AS 最新一条消息时间, COUNT(*) AS 该发件人历史消息数
FROM News
WHERE 收件人ID = 自己 AND del = 0
GROUP BY 发件人ID
无名啊 3楼回复 echo醉老仙请教sqlserver问题 (2023-11-25//)

@echo醉老仙,是说,根据聊天对象分组,并显示最后消息时间?

打开与某人的聊天界面时,则按时间显示所有历史记录?

无名啊 1楼回复 echo醉老仙请教sqlserver问题 (2023-11-25//)

@echo醉老仙,意思是《如何从 News 表中,找出 fid=x, sid=y, del=0, time 最大 的一条数据》吗?

若是,这样好像简单些?(需要 sid、fid、del、time 索引)

SELECT id
FROM News
WHERE fid=x, sid=y, del=0
ORDER BY time DESC
LIMIT 1
无名啊 9楼回复 希望自己长胖胖为什么小米不上大电池手机? (2023-10-30//)

@没落的情绪,好像骁龙 845 的二手安卓,也才两三百?

无名啊 7楼回复 希望自己长胖胖为什么小米不上大电池手机? (2023-10-30//)

@没落的情绪,有啥性能好的小主机吗?

无名啊 9楼回复 胡图图听说苹果所有软件都要抽成? (2023-10-27//)

@胡图图,好像虚拟物品比安卓贵 43%?

比如,安卓抖音 1 元能买 10 抖币,苹果只能买 7 抖币?

下一页 (1 / 18页)

5月19日 00:17 星期天

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1