当我使用NASM组装asm代码时,大约200,000甚至更多(2.6 Gz Ununtu 12.04 32bit 4内核), 我发现装配速度太慢(4分钟?甚至更长?我没有明确计算时间消耗)
所以我想知道有没有办法利用多核来加速鼻子组装过程?
我谷歌但没有找到有用的东西......
谢谢!
答案 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,加上检测文件何时更改的开销,以及读取任何更改和汇编的源文件编写目标文件,加上/启动链接器并让它解析链接器脚本)。基本上;它很容易让事情变得更糟。