草庐IT

java - JVM 的内存占用量是多少,如何将其最小化?

我只是想知道当JavaVM(Sun、Linux)开始产生多个JVM进程时实际占用的空间是多少。当我记得很清楚时,那些应该分享rt.jar(也许更远?)。这些JVM是否共享JIT缓存(所有JVM具有相同的Classpath)?有什么办法可以减少多实例JVM的开销吗?(除了为堆设置更小的限制)?在编写应用程序时我可以做些什么?我可以共享内存区域吗?也许共享映射的内存块? 最佳答案 Thispost描述了构成Java应用程序足迹的内容。也就是说,如果你想减少占用空间,你需要减少那些部分:JavaHeap、Metaspace、CodeCac

javascript - 将 kotlin 代码编译为 JVM 和 JavaScript

我真的很喜欢将框架编码一次,然后能够将其编译为jvm字节码以及javascript以供Web使用的想法。目前可以使用kotlin编译器吗? 最佳答案 这是可能的,但您可能会遇到一些困难。首先,您只能使用Maven构建和配置它:只需设置两个执行。第二个问题是IDE无法处理多个目标,因此您可以使用技巧来启用/禁用stdlib/kotlin-js-library您可以在https://github.com/Kotlin/kotlinx.html上查看它它是多模块项目..模块jvm只为JVM编译,模块js只为javascript,模块共享给

android - 指定为非空的参数为空 : method kotlin. jvm.internal.Intrinsics.checkParameterIsNotNull,参数 convertView

在将适配器代码转换为Kotlin后出现此错误:java.lang.IllegalArgumentException:Parameterspecifiedasnon-nullisnull:methodkotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,parameterconvertViewat...MyAdapter.getView(UnknownSource:35)atandroid.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)atan

java - 如何在 Spring applicationContext.xml 中读取 JVM 参数

我有一个带有Spring的JSFWeb应用程序,我正在尝试找出一种从applicationContext.xml引用JVM参数的方法。我使用环境参数(例如,-Denv=development)启动JVM。我找到并尝试了几种不同的方法,包括:${environment}但是,当在MyClass中调用setter方法时,传递的是字符串“${environment}”,而不是“development”。我有一个使用System.getProperty()的解决方法,但是能够通过Spring设置这些值会更好、更清晰。有没有办法做到这一点?编辑:我之前应该提到的是,我正在使用JDBC连接从我的数

java - 如何在 Spring applicationContext.xml 中读取 JVM 参数

我有一个带有Spring的JSFWeb应用程序,我正在尝试找出一种从applicationContext.xml引用JVM参数的方法。我使用环境参数(例如,-Denv=development)启动JVM。我找到并尝试了几种不同的方法,包括:${environment}但是,当在MyClass中调用setter方法时,传递的是字符串“${environment}”,而不是“development”。我有一个使用System.getProperty()的解决方法,但是能够通过Spring设置这些值会更好、更清晰。有没有办法做到这一点?编辑:我之前应该提到的是,我正在使用JDBC连接从我的数

java - JEP 145 发生了什么(由于编译代码重用,jvm 启动更快)?

2012年,aJEP145已创建以在java中缓存已编译的native代码,以更快的jvm启动。当时,ithadbeenofficiallyannounced.然而,JEP145doesnotexist不再。这是怎么回事?这个想法听起来不错。我找不到关于取消该项目的原因和时间的官方声明。 最佳答案 JEP的文本在JEPsourcerepository中仍然可用。:http://hg.openjdk.java.net/jep/jeps/raw-file/c915dfb4117d/jep-145.md似乎没有记录取消它的原因。但我们现在

java - JVM 到 JVM 通信的所有方式

我想要两个JVM可以通信的所有方式的列表。JVM可以是本地的或远程的。最明显的是套接字通信资源管理共享内存(文件/数据库)注意:我对比较这些不感兴趣,因为我们选择的方式取决于需要。我很想知道实际存在的所有方式。 最佳答案 参见inter-processcommunication. 关于java-JVM到JVM通信的所有方式,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/67641

java - 如何为多个 JVM 使用一个 JMX 代理?

当在一台机器上运行多个JVM(以及单个IP地址)时,在每个JVM中合并JMX需要一个单独的端口。由于我不会进入已配置端口的原因在这种环境中非常重要,因此我希望在每台机器上都有一个JMX代理,它能够提供对每个本地JVM及其JMX数据的访问。这类似于本地SNMP守护进程,代理在每个单独的进程中运行。但是,临时端口很好,因为它们在我有权访问的用于显式配置JMX的竞争端口范围之外。我知道像OracleCoherence这样的产品在内部执行此操作,但是是否有执行此操作的通用解决方案? 最佳答案 OpenDMK支持MBeanServerCasc

java - 为什么 JVM 有 iconst_2 - iconst_5 操作码?

在阅读JVM规范时(正如我所做的那样),当我遇到7iconst_时,我感到非常惊讶。操作码。毕竟,只有一个字节可以玩。我很少在代码中写2、3、4或5的文字。我能理解为什么-1、0和1可能会被特殊对待,但令我惊讶的是,设计师竟然想在恰好非常小的数字上使用4个宝贵的操作码。有谁知道这是否有充分的理由?我是否低估了这些的好处? 最佳答案 我认为,您的假设是正确的:只是为了让字节码更小,让Java解释器更快一点(当时没有JIT编译器)。请注意,这些字节码的使用频率可能比您预期的要高得多。例如,考虑以下代码:int[]a={10,20,30,

java - JVM 同步 Finally block

查看JavaVirtualMachineSpecification编译后的代码告诉我们如何"synchronized"block是用java实现的。以下代码:publicvoidtestSync(){Objectobj=getSomeObject();synchronized(obj){doSomething();}}...大致相当于这个伪代码:publicvoidtestSync(){Objectobj=getSomeObject();Object__temp=obj;monitorenter__temp;try{doSomething();}finally{monitorexit_