标签: native

为什么本机库在使用java时使用的内存比在Linux下使用C-Programm时多1.5倍?

我用C编写了一个库,它消耗了大量内存(数百万个小块).我写了一个使用这个库的ac程序.我写了一个使用相同库的java程序.Java程序是库周围非常薄的层.基本上只有一个本地方法被调用,所有的工作都会在几个小时之后完成.使用java调用接口,Java和本机库之间没有进一步的通信.也没有Java对象占用了大量的内存.

所以c程序和Java程序非常相似.整个计算/内存分配发生在本机库中.仍然.执行时,c程序消耗3GB内存.但Java程序消耗4.3GB!(顶部报告的VIRT金额)

我检查了Java进程的内存映射(使用pmap).图书馆只使用40MB.因此,Java加载的其他库不是原因.

有没有人对这种行为有解释?

编辑:感谢您的答案到目前为止.为了让多一点更清晰:Java代码什么也不做,但调用本地库ONCE!java堆是标准大小(可能是60MB)并且未使用(除了包含main方法的一个类和调用本机库的另一个类).

本机库方法是一个长期运行的方法,并且可以执行大量的malloc和frees.碎片化也是我自己想到的一种解释.但由于没有Java代码处于活动状态,因此Java程序和c程序的碎片行为应该相同.由于它不同,我还假设在c程序或Java程序中运行时使用的malloc实现是不同的.

java linux memory native

7
推荐指数
1
解决办法
1107
查看次数

在Java中使用native

有人可以解释在Java中使用native关键字的原因和原因吗?

java native

7
推荐指数
3
解决办法
2902
查看次数

java.lang.Math类的纯java实现

我刚刚下载了openjdk源代码,并认识到几乎所有的java.lang.Math类都是用本机c/c ++代码实现的.我想知道是否有任何完全用java编写的实现.

java math openjdk native

7
推荐指数
1
解决办法
1110
查看次数

在PhoneGap iPhone应用中使用广告

有没有人有任何见解,经验/链接,他们可以指出我添加广告到我正在PhoneGap平台上构建的应用程序?

我一直在搜索,而不是很多信息.以为我会问.提前致谢.

iphone native ads cordova

7
推荐指数
1
解决办法
2306
查看次数

如何使用Native Activity?它可以与传统活动相结合吗?

我有两个库(.so),我在java代码中加载.

但是,有一些特定的操作需要Java(Activity)< - > C++(.so files)调用.

我可以使用Native Activity来实现部分功能吗?原生活动是传统活动的补充,还是我必须选择,我将使用哪种活动?

[编辑]

有一组事件可以通过本机活动在本机代码中处理

机器人-NDK /源/机器人/ native_app_glue/android_native_app_glue.h

enum {
    /**
     * Command from main thread: the AInputQueue has changed.  Upon processing
     * this command, android_app->inputQueue will be updated to the new queue
     * (or NULL).
     */
    APP_CMD_INPUT_CHANGED,

    /**
     * Command from main thread: a new ANativeWindow is ready for use.  Upon
     * receiving this command, android_app->window will contain the new window
     * surface.
     */
    APP_CMD_INIT_WINDOW,

    /**
     * Command from main thread: the …
Run Code Online (Sandbox Code Playgroud)

android native android-activity

7
推荐指数
1
解决办法
9232
查看次数

Debug Visualizer在预览中使用成员方法/函数调用?

将Visual Studio 2010与本机C++一起使用.编辑autoexp.dat时,是否可以在调试可视化工具预览中使用方法调用的结果?

例如,如果我的班级是Person,我该怎么做:

MyNamespace::Person{
  preview(
    #("FirstName=", $e->GetFirstName())
  )
}
Run Code Online (Sandbox Code Playgroud)

(你可能会问为什么我不只是获取私有成员变量数据,这是因为GetFirstName()委托给第三方库方法调用,所以我没有访问数据成员.另一个原因可能是方法执行一些计算.)

c++ debugging native debuggervisualizer visual-studio

7
推荐指数
1
解决办法
2234
查看次数

使用sun.misc.Unsafe获取Java数组项的地址?

我正在努力理解sun.misc.Unsafe的文档 - 我想因为它不适合一般用途,没有人真的为让它可读而烦恼 - 但实际上我真的需要一种方法来找到一个元素的地址一个数组(以便我可以将指针传递给本机代码).有没有人有任何工作代码这样做?它可靠吗?

java memory pointers unsafe native

7
推荐指数
2
解决办法
5719
查看次数

在SWT插件中打包GDAL JAVA绑定和本机库

我想将GDAL及其JAVA绑定打包到SWT插件中.(PS GDAL使用swig生成Java绑定)

我有所有必需的本机库,并希望将它们打包到我的Eclipse插件中,让其他人使用它而无需在他们的计算机上安装GDAL.

问题是JAVA Binding(或本机lib本身)将从PATH(Window)或LD_LIBRARY_PATH(Linux)查找必要的本机库,而不是在相对位置查找这些库.此外,GDAL还将从环境变量GDAL_DATA中查找一些必要的地理定义数据.

如何解决这两个问题以制作便携式SWT插件?1)包平台特定的本机库2)一些环境变量查找

似乎eclipse无法在没有设置PATH的情况下解析依赖的lib.Bundle-NativeCode(见下文)不起作用.

如果我尝试直接在我的插件中调用System.Library("SomethingNotExist"); 然后我明白了

java.lang.UnsatisfiedLinkError: no SomethingNotExist in java.library.path
Run Code Online (Sandbox Code Playgroud)

如果我在我的插件中调用System.Library("SomethingDoesExist"),那么我得到了

java.lang.UnsatisfiedLinkError: SomethingDoesExist.dll: Can't find dependent libraries
Run Code Online (Sandbox Code Playgroud)

我的插件中的文件结构

org.gdal/
   + src/
   + nativelib/
      + linux32/
        + ...
      + linux32/
        + ...
      + win32/
        + ...
      + win64/
        + ...
   + META-INF
      + MANIFEST.MF
   + gdal-data/
   + gdal.jar
   + build.properties
Run Code Online (Sandbox Code Playgroud)

此插件的build.properties

source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               gdal.jar,\
               gdal-data/,\
               nativelib/
Run Code Online (Sandbox Code Playgroud)

此插件的清单

Manifest-Version: 1.0
Bundle-ManifestVersion: 2 …
Run Code Online (Sandbox Code Playgroud)

eclipse java-native-interface plugins swt native

7
推荐指数
1
解决办法
4142
查看次数

从Adobe的Adobe AIR原生扩展启动活动

我完全不熟悉Android SDK的开发.我正在尝试从AIR的原生扩展(在Android上)启动Adobe Reader.

这是我做的(我按照本教程:http://www.adobe.com/devnet/air/articles/extending-air.html).

我有一个控制器:

package com.tokom.adobereader
{
import com.tokom.adobereader.events.AdobeReaderEvent;

import flash.events.EventDispatcher;
import flash.events.StatusEvent;
import flash.external.ExtensionContext;

/**
 * A controller used to interact with the system volume on iOS and
 * Android devices.  Ways to change the volume programmatically
 * and to respond to the hardware volume buttons are included.
 *  
 * @author Nathan Weber
 */ 
public class AdobeReaderController extends EventDispatcher
{
    //----------------------------------------
    //
    // Variables
    //
    //----------------------------------------

    private static var _instance:AdobeReaderController;
    private var extContext:ExtensionContext;


    //---------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

air pdf android native

7
推荐指数
1
解决办法
4869
查看次数

检查是否使用react native启用了位置服务

我目前正在开发一个使用react native的应用程序,该应用程序需要启用位置服务来实现其某些功能.我一直在研究是否有一种简单的方法来测试用户是否打开了它们,所以如果不是,我可以显示不同的视图.除了IOS或Android特有的结果之外,我没有找到任何结果.还有其他人找到了解决方案吗?

android native geolocation ios react-native

7
推荐指数
2
解决办法
1万
查看次数