Assembly 有没有办法利用多核加速nasm组装过程?

Assembly 有没有办法利用多核加速nasm组装过程?,assembly,nasm,multicore,Assembly,Nasm,Multicore,当我使用NASM组装asm代码时,大约200000甚至更多(2.6 Gz Ununtu 12.04 32位4核), 我发现装配速度太慢(4分钟?甚至更长?我没有明确计算时间消耗) 所以我想知道有没有办法利用多核加速nasm组装过程 我在谷歌上搜索,但没有找到有用的东西 谢谢大家! 您可以将庞大的asm文件拆分为多个部分,并分别并行组装(例如,如果您使用的是makefiles,请使用make-j4),然后将它们链接在一起。请改用。它的语法非常相似(转换很容易),而且速度更快,因为它是用汇编语言编写

当我使用NASM组装asm代码时,大约200000甚至更多(2.6 Gz Ununtu 12.04 32位4核), 我发现装配速度太慢(4分钟?甚至更长?我没有明确计算时间消耗)

所以我想知道有没有办法利用多核加速nasm组装过程

我在谷歌上搜索,但没有找到有用的东西


谢谢大家!

您可以将庞大的asm文件拆分为多个部分,并分别并行组装(例如,如果您使用的是makefiles,请使用
make-j4
),然后将它们链接在一起。

请改用。它的语法非常相似(转换很容易),而且速度更快,因为它是用汇编语言编写的


在我的项目中,在1.8GHz 32位CPU和FASM版本1.71.19上编译300K+源代码行(结果为260kB可执行文件)的时间不到3秒。对于大多数汇编程序来说,实际上根本没有代码优化,几乎所有CPU时间都花在预处理和解析上。实际速度的最大瓶颈通常是磁盘访问时间(这与CPU/处理无关)

在这种情况下;这将有助于安装更快的硬盘或SSD(尤其是在处理大量查找时间更重要的小文件时),增加可用RAM(更大的文件缓存),并可能对磁盘进行碎片化(如果合适)

使用多个CPU不会加快磁盘访问时间。切换到不同的汇编器也不会


用于生成对象文件,然后链接;而不是从磁盘加载X源文件并组装它们;最终从磁盘加载X对象文件并链接它们(加上加载/启动“make”的开销)让它解析makefile,再加上检测文件何时更改的开销,再加上读取任何确实更改的源文件、组装和写入目标文件,再加上加载/启动链接器并让它解析链接器脚本)。基本上;它很容易让事情变得更糟。

我在~50K SLOC上使用MASM,组装时间为1-2秒。你确定你的机器没有分页吗?我可以问你为什么使用32位版本的Ubuntu吗?仅此一点就让我觉得您可能只有不到3 GiB的可用RAM;而操作系统(包括图形用户界面、应用程序等)可能会消耗掉其中的2GB,导致文件缓存等资源不足。