Articles of jvm

Por que o heap máximo está mudando em tempo de execução?

Temos um aplicativo Java em execução no openjdk8, cuja memory heap máxima muda em tempo de execução – qual pode ser a razão disso? Eu encontrei a pergunta Por que o heap está mudando em java, que aponta para o artigo que explica a diferença entre memory max e committed . Parece que no nosso […]

Por que os bytecodes Java para invocar methods implicitamente adquirem e liberam monitores?

Estive lendo sobre o Java Virtual Machine Instruction Set e percebi que, ao usar instruções para invocar methods (por exemplo, invokestatic, invokevirtual, etc.) marcados como sincronizados, cabe a essa instrução específica de bytecode adquirir o monitor no receptor. object. Da mesma forma, ao retornar de um método, cabe a instrução que deixa o método para […]

Descarregando o rJava e / ou reiniciando a JVM

Eu gostaria de usar o rJava em combinação com o mcparallel mas obviamente a JVM não pode ser bifurcada . Portanto, uma instância separada da JVM precisa ser iniciada para cada processo filho, por exemplo: library(rJava) library(parallel) myfile <- system.file("tests", "test_import.xlsx", package = "xlsx") #This works: mccollect(mcparallel({ #Automatically initiates JVM in child xlsx::read.xlsx(myfile, 1) })) […]

Como o multi-catch é implementado no Java 7?

Como o compilador Java 7 manipula blocos multi-catch? Uma implementação ingênua seria gerar um bytecode como se vários blocos catch estivessem presentes. No entanto, eu recolhi a partir de várias fonts que este não é o caso – Um bloco de captura que lida com vários tipos de exceção não contribui nenhum bytecode duplicado durante […]

Passando variables ​​de ambiente para uma JVM, de maneira independente da plataforma

Estou desenvolvendo um aplicativo J2EE que é executado no JBoss em uma máquina com Windows Vista, mas o aplicativo terminará em uma máquina Linux. Existe uma maneira de passar o valor de uma variável de ambiente de maneira independente da plataforma? Eu acho (mas não tenho certeza) que a maneira sensível à plataforma seria: -Denv_var=%MY_ENV_VAR% […]

Não foi possível criar a máquina virtual Java

enfrentando algum problema com a boot da máquina virtual java. quando estou usando conta root posso trabalhar corretamente com java. mas quando eu sou uma conta de usuário, ele retorna os seguintes erros user@host# $JAVA_HOME/bin/java -version Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java […]

Como obtenho uma mensagem de erro quando falho ao carregar uma JVM via JNI?

Eu gostaria de recuperar uma mensagem de erro que explica porque o jvm não conseguiu carregar. Dos exemplos fornecidos aqui: http://java.sun.com/docs/books/jni/html/invoke.html Eu extraí este exemplo: /* Create the Java VM */ res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); if (res < 0) { // retrieve verbose error here? fprintf(stderr, "Can't create Java VM\n"); exit(1); } No meu […]

É possível ter dois encadeamentos filhos com um caminho de class diferente em cada um deles?

Eu tenho um aplicativo “core” que é adaptador para processar a tarefa. Cada tarefa é implementada em uma carga do adaptador pelo núcleo para processar a tarefa. Minha pergunta é, é possível ter um caminho de class diferente em cada adaptador para preceder o conflito de class / jar entre os adaptadores. Saudações,

Monitorando a contenção de bloqueio em aplicativos Java

Eu estou tentando criar um pouco de referência (no Groovy) que mostra alta contenção de thread em um par de methods sincronizados. Alta contenção deve aparecer ao monitorar switches de contexto voluntários, e no Linux isso pode ser alcançado graças ao “pidstat”. O programa é o seguinte: class Res { private int n; synchronized public […]

Ferramentas para monitorar a execução de encadeamentos java

Eu tenho um aplicativo da web java em execução em um servidor Tomcat (Linux). No ambiente de produção, estou enfrentando algum problema de desempenho. Em intervalos randoms, o processo jsvc no qual o tomcat está em execução começa a rodar em 90-100% da CPU. Não consigo descobrir o gatilho para esse evento. O servidor é […]