首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当多个进程尝试同时写入时,序列化花费的时间太长

当多个进程尝试同时写入时,序列化花费的时间太长
EN

Stack Overflow用户
提问于 2014-06-16 19:12:30
回答 1查看 49关注 0票数 1

在多进程序列化文件时,我们面临着性能问题。

问题是:我们正在创建多个进程(在分布式计算环境中)来执行我们的计算,然后将每个进程的输出记录在一个文件中。主进程使用这些文件,将其合并到内存中,并进行进一步的计算。

我们限制了服务器的数量。在同一台服务器上可以创建2-3个进程。当这种情况发生时(2-3个进程在同一服务器上创建),我们就会遇到这样一个场景:这些进程试图同时在磁盘上写入\序列化计算文件(文件大小约为80-90MB)。当发生这种情况时,序列化文件大约需要3m。在正常情况下,80-90MB只需要30秒。

我们在性能监视器(和我们的日志计时)中监控了这个场景,可以看到由于2-3个进程同时尝试写入,它所需的时间大约是正常计时的6倍。

任何建议,以改善计时(3分钟的情况)是赞赏的。

我们使用.Net框架,代码是用c#编写的。

EN

回答 1

Stack Overflow用户

发布于 2014-06-16 19:20:34

您可以尝试强制进程写入不同的文件,然后只读取文件夹中的所有文件。例如,您可以具有以下结构

代码语言:javascript
运行
复制
|-C:\experiments\current
|--- output_{UNIQUE_SUFFIX}.bin 
|--- output_0.bin
|--- output_1.bin
|--- output_nwvpqnfj.bin
|--- output_jhfjqhfew.bin
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24242378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档