multithreading - 多线程 Circos
问题描述
我需要加快马戏团情节的生成。我正在绘制 25 个环,原始 perl 版本大约需要 30 秒才能生成图像。(解析 25 个文件,然后单独构建每个环)。情节看起来很棒,但 30 秒不适合我。
JS 版本要快很多(约 10 秒),但它缺少一些我需要的功能。python版本比JS慢,但比perl快。理想情况下,我希望在不到一秒的时间内构建它。
这是我对并行处理重建的思考过程。
- 通过 JSON 导入数据并将每一行的数据解析为数组/字典/对象
- 生成一个包含 25 个线程的池,并将每行数据提供给该线程以创建该行的 SVG
- 池完成后,将 25 个 SVG 合并为一个,要么手动(因为它是 XML),要么使用一些库。
我的背景是 C# 和 Typescript,有点 Python,没有多线程经验,所以这里是我的问题。
- 这会像我描述的那样工作吗?
- 即它会显着增加构建时间吗?
- 我应该使用什么语言?
- 我已经安装了 Go 并成功生成了 SVG
- 我应该和雷一起去吗?我也许可以采用 PCircos 项目并对其进行转换——或者至少采用大量已经可以工作的代码。
- Rust 看起来很棒,但可能超出了我的能力
先感谢您。
解决方案
推荐阅读
- python - 无法在 Ubuntu 18.04 上为 python 3.6 安装 Flask-Enterprise
- r-markdown - blogdown rmarkdown::render_site 从与站点不同的项目运行时找不到 config.toml
- javascript - 如何将 URL 参数放入我的自动回复隐藏字段?
- python - 如何附加来自多个模型的回归系数?
- rust - 我如何在不借用 Rust 的情况下进行匹配?
- android - 创建文件:没有这样的文件或目录android
- graphics - WebGL 只为最远的一侧着色,而不是最近的一侧
- css - 将不透明颜色转换为半透明颜色 [混合模式]
- python-3.x - 如何在 Linux 终端中启动服务、运行作业然后关闭服务?
- soap-client - 未捕获的 SoapFault 异常:无法加载外部