【问题标题】:Why do MacOS apps store a lot of strings?为什么 MacOS 应用程序会存储大量字符串?
【发布时间】:2020-06-29 04:33:21
【问题描述】:

为什么在 MacOS 中,我的应用程序在可执行文件中有很多字符串。就像一堆二进制非人类可读的废话,然后我看到一堆函数和变量名,类型名,比如NSString 和其他NS+something 字符串,很多OBJC+something IIRC , 但为什么?为什么它会存储所有这些?除了增大可执行文件大小之外?

【问题讨论】:

    标签: string macos executable


    【解决方案1】:

    我无法专门为 MacOS 二进制文件回答这个问题,但二进制文件通常有两个原因,例如函数名称:

    1. 它允许某人调试程序。如果没有这些符号,每个变量、函数、堆栈跟踪都将包含没有那么有用的信息。
    2. 在某些情况下,它允许其他进程调用另一个二进制文件中的函数。如果函数名称未编码,则其他程序无法通过函数名称调用该函数(因为它没有函数名称)。

    通常可以创建带有调试符号的二进制文件,这会减小二进制文件的大小。

    【讨论】:

    • 它还可以生成更有用的系统崩溃报告。
    • 但是我怎样才能摆脱它们,这样我就不必为 1 或 2 个字符的变量名而费尽心思了?
    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2012-04-25
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多