- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 C++ 应用程序中,我需要通过 JNI 调用“jar”文件内的一些 java 函数。
然而,在调用 JNI_CreateJavaVM 函数之后,我的应用程序内存增加了 3、4 GB。我怀疑这是由于 java VM 加载到我的应用程序中造成的。但是,3.4 GB 在我的环境中是 Not Acceptable 。有人可以告诉我有哪些参数可用于减少内存需求。
我的示例代码:
#include <jni.h>
#include <iostream>
using namespace std;
int main(const int argc, const char** argv)
{
JNIEnv* p_JNIEnv = NULL;
JavaVM* jvm;
JavaVMInitArgs args;
JavaVMOption options[1];
args.version = JNI_VERSION_1_2;
args.nOptions = 1;
const char* zSystemLibs = "/x01/nptsapp/sujith/ds3api";
if (!zSystemLibs)
{
cout << "SYSTEM_LIBS environment variable not set" << endl;
return false;
}
// ClientAPI, Security and DS3Authenticator class made by us
char zPath[1024];
snprintf(zPath, 1024, "-Djava.class.path=%s/clientapi.jar:%s/security-1.2.jar:%s/RSAPasswordEncryptLib.jar:%s", zSystemLibs,
zSystemLibs, zSystemLibs, zSystemLibs);
cout << "Class Path=" << zPath << endl;
options[0].optionString = zPath;
args.options = options;
args.ignoreUnrecognized = JNI_FALSE;
p_JNIEnv = NULL;
JNI_CreateJavaVM(&jvm, (void**)&p_JNIEnv, &args);
if (!p_JNIEnv)
{
cout << "JNIEnv Not Created" << endl;
return false;
}
cout << "JNIEnv Created Successful:" << p_JNIEnv << endl;
cout << getpid() << " Enter:";
int iValue;
cin >> iValue;
return 0;
};
编译运行
[sujith@nc-110 ~/ds3api]$ ./a.out
Class Path=-Djava.class.path=/x01/nptsapp/sujith/ds3api/clientapi.jar:/x01/nptsapp/sujith/ds3api/security-1.2.jar:/x01/nptsapp/sujith/ds3api/RSAPasswordEncryptLib.jar:/x01/nptsapp/sujith/ds3api
JNIEnv Created Successful:0x10869e8
21152 Enter:
应用程序停止前的 pmap 输出。我添加了 cin 来停止应用程序,直到获得 pmap 输出。
[sujith@nc-110 ~]$ pmap -d 21152
21152: ./a.out
Address Kbytes Mode Offset Device Mapping
0000000000400000 4 r-x-- 0000000000000000 000:00019 a.out
0000000000601000 4 rw--- 0000000000001000 000:00019 a.out
000000000107d000 684 rw--- 0000000000000000 000:00000 [ anon ]
0000000721200000 21504 rw--- 0000000000000000 000:00000 [ anon ]
0000000722700000 62464 rw--- 0000000000000000 000:00000 [ anon ]
0000000726400000 148480 rw--- 0000000000000000 000:00000 [ anon ]
000000072f500000 2229760 rw--- 0000000000000000 000:00000 [ anon ]
00000007b7680000 74752 rw--- 0000000000000000 000:00000 [ anon ]
00000007bbf80000 1114624 rw--- 0000000000000000 000:00000 [ anon ]
0000003f62000000 128 r-x-- 0000000000000000 068:00002 ld-2.12.so
0000003f6221f000 4 r---- 000000000001f000 068:00002 ld-2.12.so
0000003f62220000 4 rw--- 0000000000020000 068:00002 ld-2.12.so
0000003f62221000 4 rw--- 0000000000000000 000:00000 [ anon ]
0000003f62400000 524 r-x-- 0000000000000000 068:00002 libm-2.12.so
0000003f62483000 2044 ----- 0000000000083000 068:00002 libm-2.12.so
0000003f62682000 4 r---- 0000000000082000 068:00002 libm-2.12.so
0000003f62683000 4 rw--- 0000000000083000 068:00002 libm-2.12.so
0000003f62800000 1628 r-x-- 0000000000000000 068:00002 libc-2.12.so
0000003f62997000 2048 ----- 0000000000197000 068:00002 libc-2.12.so
0000003f62b97000 16 r---- 0000000000197000 068:00002 libc-2.12.so
0000003f62b9b000 4 rw--- 000000000019b000 068:00002 libc-2.12.so
0000003f62b9c000 20 rw--- 0000000000000000 000:00000 [ anon ]
0000003f62c00000 8 r-x-- 0000000000000000 068:00002 libdl-2.12.so
0000003f62c02000 2048 ----- 0000000000002000 068:00002 libdl-2.12.so
0000003f62e02000 4 r---- 0000000000002000 068:00002 libdl-2.12.so
0000003f62e03000 4 rw--- 0000000000003000 068:00002 libdl-2.12.so
0000003f63000000 92 r-x-- 0000000000000000 068:00002 libpthread-2.12.so
0000003f63017000 2044 ----- 0000000000017000 068:00002 libpthread-2.12.so
0000003f63216000 4 r---- 0000000000016000 068:00002 libpthread-2.12.so
0000003f63217000 4 rw--- 0000000000017000 068:00002 libpthread-2.12.so
0000003f63218000 16 rw--- 0000000000000000 000:00000 [ anon ]
0000003f63800000 28 r-x-- 0000000000000000 068:00002 librt-2.12.so
0000003f63807000 2044 ----- 0000000000007000 068:00002 librt-2.12.so
0000003f63a06000 4 r---- 0000000000006000 068:00002 librt-2.12.so
0000003f63a07000 4 rw--- 0000000000007000 068:00002 librt-2.12.so
0000003f6a800000 88 r-x-- 0000000000000000 068:00002 libgcc_s-4.4.6-20110824.so.1
0000003f6a816000 2044 ----- 0000000000016000 068:00002 libgcc_s-4.4.6-20110824.so.1
0000003f6aa15000 4 rw--- 0000000000015000 068:00002 libgcc_s-4.4.6-20110824.so.1
0000003f6e000000 928 r-x-- 0000000000000000 068:00002 libstdc++.so.6.0.13
0000003f6e0e8000 2048 ----- 00000000000e8000 068:00002 libstdc++.so.6.0.13
0000003f6e2e8000 28 r---- 00000000000e8000 068:00002 libstdc++.so.6.0.13
0000003f6e2ef000 8 rw--- 00000000000ef000 068:00002 libstdc++.so.6.0.13
0000003f6e2f1000 84 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f10000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f10021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f14000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f14021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f18000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f18021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f1c000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f1c021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f20000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f20021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f2616f000 96836 r---- 0000000000000000 068:00002 locale-archive
00007f1f2c000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f2c021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f30000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f30021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f34000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f34021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f39090000 114112 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f40000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f40021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f470ae000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f470af000 4 ----- 0000000000000000 000:00000 [ anon ]
00007f1f470b0000 1024 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f471b0000 12 ----- 0000000000000000 000:00000 [ anon ]
00007f1f471b3000 1016 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f472b1000 12 ----- 0000000000000000 000:00000 [ anon ]
00007f1f472b4000 1016 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f473b2000 12 ----- 0000000000000000 000:00000 [ anon ]
00007f1f473b5000 1016 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f474b3000 12 ----- 0000000000000000 000:00000 [ anon ]
00007f1f474b6000 1016 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f475b4000 12 ----- 0000000000000000 000:00000 [ anon ]
00007f1f475b7000 1016 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f476b5000 12 ----- 0000000000000000 000:00000 [ anon ]
00007f1f476b8000 1016 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f477b6000 4 ----- 0000000000000000 000:00000 [ anon ]
00007f1f477b7000 8484 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f48000000 132 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f48021000 65404 ----- 0000000000000000 000:00000 [ anon ]
00007f1f4c08d000 2488 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4c2fb000 1788 r--s- 00000000039e5000 068:00002 rt.jar
00007f1f4c4ba000 8408 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4ccf0000 4 ----- 0000000000000000 000:00000 [ anon ]
00007f1f4ccf1000 1024 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4cdf1000 4 ----- 0000000000000000 000:00000 [ anon ]
00007f1f4cdf2000 1068 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4cefd000 120 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4cf1b000 292 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4cf64000 4356 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4d3a5000 44 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4d3b0000 120 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4d3ce000 292 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4d417000 4352 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4d857000 148 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4d87c000 2176 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4da9c000 44 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4daa7000 728 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f4db5d000 2496 rwx-- 0000000000000000 000:00000 [ anon ]
00007f1f4ddcd000 46656 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f50b5d000 104 r-x-- 0000000000000000 068:00002 libzip.so
00007f1f50b77000 2048 ----- 000000000001a000 068:00002 libzip.so
00007f1f50d77000 4 rw--- 000000000001a000 068:00002 libzip.so
00007f1f50d78000 44 r-x-- 0000000000000000 068:00002 libnss_ldap.so.2
00007f1f50d83000 2044 ----- 000000000000b000 068:00002 libnss_ldap.so.2
00007f1f50f82000 4 rw--- 000000000000a000 068:00002 libnss_ldap.so.2
00007f1f50f83000 48 r-x-- 0000000000000000 068:00002 libnss_files-2.12.so
00007f1f50f8f000 2048 ----- 000000000000c000 068:00002 libnss_files-2.12.so
00007f1f5118f000 4 r---- 000000000000c000 068:00002 libnss_files-2.12.so
00007f1f51190000 4 rw--- 000000000000d000 068:00002 libnss_files-2.12.so
00007f1f511a8000 164 r-x-- 0000000000000000 068:00002 libjava.so
00007f1f511d1000 2048 ----- 0000000000029000 068:00002 libjava.so
00007f1f513d1000 8 rw--- 0000000000029000 068:00002 libjava.so
00007f1f513d3000 52 r-x-- 0000000000000000 068:00002 libverify.so
00007f1f513e0000 2044 ----- 000000000000d000 068:00002 libverify.so
00007f1f515df000 8 rw--- 000000000000c000 068:00002 libverify.so
00007f1f515e1000 28 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f515f4000 32 rw-s- 0000000000000000 068:00002 21152
00007f1f515fc000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f515fd000 4 r---- 0000000000000000 000:00000 [ anon ]
00007f1f515fe000 4 rw--- 0000000000000000 000:00000 [ anon ]
00007f1f515ff000 11712 r-x-- 0000000000000000 068:00002 libjvm.so
00007f1f5216f000 2044 ----- 0000000000b70000 068:00002 libjvm.so
00007f1f5236e000 788 rw--- 0000000000b6f000 068:00002 libjvm.so
00007f1f52433000 260 rw--- 0000000000000000 000:00000 [ anon ]
00007fffac53e000 12 ----- 0000000000000000 000:00000 [ anon ]
00007fffac542000 1008 rw--- 0000000000000000 000:00000 [ stack ]
00007fffac7ff000 4 r-x-- 0000000000000000 000:00000 [ anon ]
ffffffffff600000 4 r-x-- 0000000000000000 000:00000 [ anon ]
mapped: 4655428K writeable/private: 3860404K shared: 1820K
[sujith@nc-110 ~]$
最佳答案
我想,最明显的第一件事就是使用虚拟机的命令行选项来设置最大内存使用量。
This question有很多讨论(100%限制VM的内存使用并不容易),但最简单的尝试就是限制堆。添加 -Xmx100M
将堆最大值设置为 100 MB。
关于java - 调用 JNI_CreateJavaVM 函数后应用程序内存增加了 Giga Bytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26378274/
为了让我的代码几乎完全用 Jquery 编写,我想用 Jquery 重写 AJAX 调用。 这是从网页到 Tomcat servlet 的调用。 我目前情况的类似代码: var http = new
我想使用 JNI 从 Java 调用 C 函数。在 C 函数中,我想创建一个 JVM 并调用一些 Java 对象。当我尝试创建 JVM 时,JNI_CreateJavaVM 返回 -1。 所以,我想知
环顾四周,我发现从 HTML 调用 Javascript 函数的最佳方法是将函数本身放在 HTML 中,而不是外部 Javascript 文件。所以我一直在网上四处寻找,找到了一些简短的教程,我可以根
我有这个组件: import {Component} from 'angular2/core'; import {UserServices} from '../services/UserService
我正在尝试用 C 实现一个简单的 OpenSSL 客户端/服务器模型,并且对 BIO_* 调用的使用感到好奇,与原始 SSL_* 调用相比,它允许一些不错的功能。 我对此比较陌生,所以我可能会完全错误
我正在处理有关异步调用的难题: 一个 JQuery 函数在用户点击时执行,然后调用一个 php 文件来检查用户输入是否与数据库中已有的信息重叠。如果是这样,则应提示用户确认是否要继续或取消,如果他单击
我有以下类(class)。 public Task { public static Task getInstance(String taskName) { return new
嘿,我正在构建一个小游戏,我正在通过制作一个数字 vector 来创建关卡,该数字 vector 通过枚举与 1-4 种颜色相关联。问题是循环(在 Simon::loadChallenge 中)我将颜
我有一个java spring boot api(数据接收器),客户端调用它来保存一些数据。一旦我完成了数据的持久化,我想进行另一个 api 调用(应该处理持久化的数据 - 数据聚合器),它应该自行异
首先,这涉及桌面应用程序而不是 ASP .Net 应用程序。 我已经为我的项目添加了一个 Web 引用,并构建了各种数据对象,例如 PayerInfo、Address 和 CreditCard。但问题
我如何告诉 FAKE 编译 .fs文件使用 fsc ? 解释如何传递参数的奖励积分,如 -a和 -target:dll . 编辑:我应该澄清一下,我正在尝试在没有 MSBuild/xbuild/.sl
我使用下划线模板配置了一个简单的主干模型和 View 。两个单独的 API 使用完全相同的配置。 API 1 按预期工作。 要重现该问题,请注释掉 API 1 的 URL,并取消注释 API 2 的
我不确定什么是更好的做法或更现实的做法。我希望从头开始创建目录系统,但不确定最佳方法是什么。 我想我在需要显示信息时使用对象,例如 info.php?id=100。有这样的代码用于显示 Game.cl
from datetime import timedelta class A: def __abs__(self): return -self class B1(A):
我在操作此生命游戏示例代码中的数组时遇到问题。 情况: “生命游戏”是约翰·康威发明的一种细胞自动化技术。它由一个细胞网格组成,这些细胞可以根据数学规则生存/死亡/繁殖。该网格中的活细胞和死细胞通过
如果我像这样调用 read() 来读取文件: unsigned char buf[512]; memset(buf, 0, sizeof(unsigned char) * 512); int fd;
我用 C 编写了一个简单的服务器,并希望调用它的功能与调用其他 C 守护程序的功能相同(例如使用 ./ftpd start 调用它并使用 ./ftpd stop 关闭该实例)。显然我遇到的问题是我不知
在 dos 中,当我粘贴此命令时它会起作用: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://google.
在 dos 中,当我粘贴此命令时它会起作用: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" https://google.
我希望能够从 cmd 在我的 Windows 10 计算机上调用 python3。 我已重新安装 Python3.7 以确保选择“添加到路径”选项,但仍无法调用 python3 并使 CMD 启动 P
我是一名优秀的程序员,十分优秀!