小编dpc*_*.pw的帖子

如何在Rust中的自定义单线程迭代器上并行`map(...)`?

我有一个MyReader实现Iterator并生成Buffers的地方Buffer : Send.很快就会MyReader生成很多东西Buffer,但我有一个CPU密集型的工作要对每个Buffer(.map(|buf| ...))这是我的瓶颈,然后收集结果(有序).我希望将CPU密集型工作并行化 - 希望能够使用工作窃取来执行它们,以及核心数量允许的速度.

编辑:更准确.我正在努力rdedup.MyStructChunker哪些读取io::Read(通常是stdio),查找数据的部分(块)并产生它们.然后map()假设,对于每个块,计算它的sha256摘要,压缩,加密,保存并返回摘要作为结果map(...).已保存数据的摘要用于构建index数据.正在处理的块之间的顺序map(...)无关紧要,但是从每个块 返回的摘要map(...)需要以与找到块相同的顺序收集.实际save到文件步骤被卸载到另一个线程(写入线程).有问题的PR的实际代码

我希望我可以使用rayon它,但rayon期望一个已经可以并行的迭代器 - 例如.一个Vec<...>或类似的东西.我发现没有办法得到一个par_iterMyReader-我的读者是非常单线程的性质.

simple_parallel,但文件说,它不推荐用于一般用途.我想确保一切都能正常运作.

我可以采用spmc队列实现和自定义thread_pool,但我正在寻找经过优化和测试的现有解决方案.

还有pipeliner但不支持有序地图.

parallel-processing multithreading rust

8
推荐指数
1
解决办法
526
查看次数

C Library使用基于大括号的语法读取配置文件

对于我的C项目,我想使用基于大括号的配置文件,例如:

account {
    name = "test@test.com";
    password = "test";
    autoconnect = true;
}
Run Code Online (Sandbox Code Playgroud)

等或某些变化.

我正在尝试找到一些不错的C库来满足我的需求.你能给些建议么?

c configuration-files

2
推荐指数
1
解决办法
1676
查看次数

将"Deref"实现为返回复合结构的字段是不是惯用?

我有:

struct Id;
struct Url;
struct IdAndUrl {
    id: Id,
    url: Url,
}
Run Code Online (Sandbox Code Playgroud)

我希望能够IdAndUrl在我需要的地方使用Id.消除我可以使用的噪音impl Deref<Id> for IdAndUrl.

这是一个很好的做法/惯用语吗?

rust

2
推荐指数
2
解决办法
185
查看次数

如何在Rust程序的"main"函数中打开Vim?

我在终端,我cd <projectdirectory>.如何打开位于fn main()此项目的Vim .

我不需要一个现成的解决方案:想法会有所帮助.我可以使用Vim racer来启动时自动跳转到符号吗?

vim rust

2
推荐指数
1
解决办法
125
查看次数