【问题标题】:How to efficiently load a native shared object using java如何使用 java 有效地加载本机共享对象
【发布时间】:2014-12-24 08:37:41
【问题描述】:

我有一个 30MB 的共享对象,它通过 system.load 加载到 java exe 中,例如:

System.load("mylib.so");

似乎这会将完整的二进制文件加载到 RAM 中,从而在运行时造成 30MB 的损失。我正在寻找一种方法来避免这种惩罚,方法是通过一些分页设置或类似的东西来阻止完整的共享 obj 一次加载。我需要在嵌入式设备上更有效地使用内存,而这 30MB 是迄今为止最大的单个块。

这是否可以在不实际减小共享 obj 本身的大小的情况下进行改进(顺便说一句,这将是一项艰巨的任务)。

谢谢。

【问题讨论】:

  • System.load 是做什么的?只是好奇,谢谢

标签: java linux memory-management


【解决方案1】:

这就是 System.load 要做的事情。同样的事情发生在原生应用程序中,如果你用一个so链接,那么它将把整个东西加载到内存中,java无法解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 2010-11-11
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多