登录 立即注册

找到10213个回复

无名啊 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 了吧。。

ponyoung 3楼回复 老虎会游泳Pura70Pro+微距摄影:看看不同屏幕的子像素排列方式 (04-22 22:54//)
可喜可贺,奇怪的姿势增加了
老虎会游泳 2楼回复 老虎会游泳Pura70Pro+微距摄影:看看不同屏幕的子像素排列方式 (04-22 22:15//)
老虎会游泳 4楼回复 张小强关于4月1日起未备案app不得联网,rom底层限制了吗? (04-22 22:13//)

@张小强,不清楚,没人举报的话应该不会有事。

上善若水 1楼回复 老虎会游泳Pura70Pro+微距摄影:看看不同屏幕的子像素排列方式 (04-22 22:12//)

恭喜老虎喜提华为Pura 70 Pro+一部。
一加ace2Pro(灰|24+1024)

张小强 3楼回复 张小强关于4月1日起未备案app不得联网,rom底层限制了吗? (04-22 22:00//)
@老虎会游泳,webview应该不受影响吧
hik 2楼回复 张小强关于4月1日起未备案app不得联网,rom底层限制了吗? (04-22 14:00//)

国外服务器的应该不影响

老虎会游泳 1楼回复 张小强关于4月1日起未备案app不得联网,rom底层限制了吗? (04-22 12:53//)

是通过服务器网站备案的形式进行限制,由服务器提供商进行app备案验证及http/tls阻断,类似普通网站备案。

老虎会游泳 94楼回复 老虎会游泳向日葵控控A2(OrayKVM)U盘救砖/USB恢复模式说明/免U盘刷机教程 (04-22 09:31//)

@chenml4,那是我在电脑上装的Linux系统,不是控控。

chenml4 93楼回复 老虎会游泳向日葵控控A2(OrayKVM)U盘救砖/USB恢复模式说明/免U盘刷机教程 (04-21 21:54//)
@老虎会游泳,感谢虎哥,请问77楼是怎么登陆的呀~
削枝铅 4楼回复 爱特​红魔9Pro/Pro+全系可以软解Bootloader了 (04-21 20:45//)

可以 618就换这个了 小米现在解锁太麻烦了
小米6高配版(黑色)

艾木友尔尔巴 5楼回复 无名啊用 C++ 写了个简单的词频统计,为啥比 DuckDB 还慢一半呢。。 (04-21 07:25//)
层主 @艾木友尔尔巴 于 2024-04-21 07:25 删除了该楼层。
老虎会游泳 4楼回复 无名啊用 C++ 写了个简单的词频统计,为啥比 DuckDB 还慢一半呢。。 (04-21 02:54//)

@无名啊,你可以自行统计一下分段用时,看看输入、计算和输出各占比多少。也许输入输出是大头(因为stdio是同步锁定的)。

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

@无名啊std::cin >> word这个io可能比较慢,把文件mmap到内存然后使用char*指针直接访问每行的内容可能更快,跳转到下一行就是上一行的指针加上一行的字节数。

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

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

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

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

艾木友尔尔巴 3楼回复 爱特​红魔9Pro/Pro+全系可以软解Bootloader了 (04-21 01:27//)

我丢,这配置屌。

老虎会游泳 1楼回复 无名啊用 C++ 写了个简单的词频统计,为啥比 DuckDB 还慢一半呢。。 (04-21 00:25//)

你充分利用多核CPU了吗?把任务分成多个部分跑在不同的CPU核心上,应该会比单线程快很多。就算各个部分得出结果之后还得合并再筛选一次,也应该比整体在单个CPU核心上运行更快。

时光之末 2楼回复 爱特​红魔9Pro/Pro+全系可以软解Bootloader了 (04-20 12:08//)

这玩意是屏下指纹和屏下摄像头吗
小米12 spro(基佬紫)

上善若水 1楼回复 爱特​红魔9Pro/Pro+全系可以软解Bootloader了 (04-19 13:28//)

可以修改system分区数据吗?
一加ace2Pro(灰|24+1024)

下一页 上一页 (29 / 511页)

11月27日 12:55 星期三

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1