有没有办法利用多核来加速鼻子组装过程?

时间:2014-02-23 20:12:34

标签: assembly nasm multicore

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

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

我谷歌但没有找到有用的东西......

谢谢!

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

在我的项目Fresh IDE中, 300K + 源代码行(结果为260kB可执行文件)在1.8GHz 32位CPU和FASM版本上编译少于3秒 1.71.19

答案 2 :(得分:1)

对于大多数汇编程序,几乎没有代码优化,几乎所有CPU时间都花在预处理和解析上。实际速度的最大瓶颈通常是磁盘访问时间(与CPU /处理无关)。

在那种情况下;这将有助于包括安装更快的硬盘或SSD(特别是如果你正在使用大量寻找时间更重要的小文件),增加可用的RAM(更大的文件缓存),并可能解密磁盘(如果合适的话。)

使用多个CPU不会加快磁盘访问速度。切换到不同的汇编程序也不会。

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