代码之家  ›  专栏  ›  技术社区  ›  Max Raskin

是否有可能让ndk的链接器在启用多线程的情况下运行?

  •  1
  • Max Raskin  · 技术社区  · 4 年前

    我们有一个由数百万行代码组成的庞大库,它面向iOS和Android。

    在iOS上,链接速度极快,仅需几秒钟。 在迄今为止使用最新NDK的Android上,它的速度慢了一倍,在同一台机器上大约需要4分钟。

    注意:我使用的是macOS Mojave

    当我在活动监视器上检查NDK的ld时,它显示它使用了一个线程。

    有没有办法让它使用多线程?(希望有意义的速度提升)

    请注意,我们使用CMake和忍者生成器。

    1 回复  |  直到 4 年前
        1
  •  0
  •   Max Raskin    4 年前

    嗯,我在NDK发行说明的1月份r21版本中发现了以下内容:

    LLD is now available for testing. 
    AOSP is in the process of switching to using LLD by default and the NDK will follow (timeline unknown). 
    Test LLD in your app by passing -fuse-ld=lld when linking
    

    来源: https://developer.android.com/ndk/downloads/revision_history

    我确认LLD在我的MacBook Pro(2.9Ghz Core i7 CPU)上使用了9个线程 过去需要4分钟以上的链接只需要不到一分钟,太棒了!