我只是好奇我在unix中有一个大约9MB的二进制可执行文件。被认为是一个大的内存占用?客户端将调用它来生成一些值,然后将消息排队到其他地方。我只是好奇谁能想知道程序的内存占用时间是多少,然后必须提供类似静态库而不是可执行文件?
答案 0 :(得分:5)
一切都是相对的。如果应用程序在具有8MB RAM的计算机上运行,则占用空间很大。如果应用程序在具有64GB RAM的计算机上运行,那么它并不大。再说一遍,如果大部分RAM被一些巨大的Oracle实例吞没(例如),即使在64GB的RAM机器上它也可能很大。
你还应该考虑到只有9MB的一部分实际上被加载到RAM中 - readelf或objdump实用程序可以向你显示多少。
答案 1 :(得分:1)
这一切都取决于你获得的9MB的价值。例如,如果文件添加了几个数字,那么肯定太大。然而,如果服务器可以轻松拥有超过8GB的内存,那么9MB并不是那么多。
为了比较刚开始,一些VM可以使用超过50MB的内存。
答案 2 :(得分:1)
早在1996年,我经常为顶级CAD / CAM供应商创建可执行文件(静态链接),这些供应商的规模通常在32到50MB之间,具体取决于平台。是的,当内存为每MB 40美元时,我们设法用我们的程序填满了一个系统。在1996年。鉴于此,我今天看到的所有软件都让我感到沮丧,因为该程序在启动时比大多数人在一整天都做得更多。 :-)
所以不,除非它是“helloworld.exe”,这些天9MB并不多。
答案 3 :(得分:1)
听起来很正常。通过静态链接到各种库,或通过启用调试符号,可以快速达到9MB。
答案 4 :(得分:0)
我有1.5TB的硬盘空间。我可以在磁盘上放入174762个二进制文件。
至于ram,也许如果那个二进制文件中有9MB的代码(我非常怀疑),那么也许它将全部保存在ram中。
否则,可执行加载器可能只加载它需要的部分,如果有一些资源或二进制的未映射部分,则它们不需要在整个运行时保留在ram中。在任何情况下,你可能至少有1-4GB的ram,所以它显然不是问题......