我正在研究Java 6 18 VM上垃圾收集的各种选项,并希望得到一些指示.
我们在JBoss上运行我们的应用程序,偶尔在重新部署期间会出现臭名昭着的PermGen错误.互联网上有很多相互矛盾和过时的信息,说明解决或缓解这个问题的最佳方法.
从我所看到的,以下是正确的:
我有两个问题:
CMSClassUnloadingEnabled,并CMSPermGenSweepingEnabled来到这个?从我可以看到CMSClassUnloadingEnabled取代或隐含启用CMSPermGenSweepingEnabled.他们中的任何一个都有助于解决上述问题吗?有人能告诉我在GWT中启用番石榴支持需要做些什么.
我已经下载了Guava R07,其中有以下两个文件:
我有几个问题:
对不起,通常我没有这种事情的麻烦,但我不能完全解决在哪里.
仅供参考我暂时使用GWT 1.6,但我希望尽快转向2.如果Guava与1.6不兼容则不是问题.
我在名为gwtlib的文件夹中有以下文件:
我的Ant脚本执行以下操作:
<path id="project.class.path">
<fileset dir="gwtlibs" includes="guava-r07.jar"/>
<fileset dir="gwtlibs" includes="guava-r07-gwt.jar"/>
<fileset dir="gwtlibs" includes="jsr305-1.3.9.jar"/>
<pathelement location="${gwt.sdk}/gwt-user.jar"/>
<fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
</path>
<target name="gwtc">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="app"/>
<path refid="project.class.path"/>
</classpath>
<jvmarg value="-Xmx256M"/>
<arg value="-localWorkers"/>
<arg value="2"/>
<arg value="-war"/>
<arg value="gwt-public"/>
<arg value="Main"/>
</java>
</target>
Run Code Online (Sandbox Code Playgroud)
运行上面的命令,我收到以下错误:
如果没有类路径上的jsr jar,我会收到以下错误:
谢谢
丰富
我们为Hudson提供了一个自定义插件,可以将构建的输出上传到远程计算机上.我们刚开始研究使用Hudson slave来提高构建的吞吐量,但是使用自定义插件的项目无法使用FileNotFoundExceptions进行部署.
从我们可以看到,即使构建发生在从属服务器上,插件也会在主服务器上运行.未找到的文件确实存在于从站上,但不存在于主站上.
问题:
我开始通过迁移现有的Java SE应用程序来学习Akka.我正在使用Akka 2.0.3.
有一次,我需要通过消息队列发送PoisonPill来阻止演员.我的演员被实例化:
ActorRef myActor = actorSystem.actorOf(new Props(MyActor.class), "myActor");
Run Code Online (Sandbox Code Playgroud)
我尝试发送PoisonPill:
myActor.tell(PoisonPill.getInstance());
Run Code Online (Sandbox Code Playgroud)
但是我得到以下编译器错误:
'tell(java.lang.Object)' in 'akka.actor.ActorRef' cannot be applied to '(akka.actor.PoisonPill$)'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我在Idea中运行Java 1.6.0_26(我在Eclipse中一辈子都在学习).
编辑:
我也尝试过这种方法,它在文档中,但我得到了相同的编译器错误,并且Idea警告我不推荐使用Actors类.
import static akka.actor.Actors.*;
extractionActor.tell(poisonPill());
Run Code Online (Sandbox Code Playgroud) 是否可以查询在堆转储中转储的集合?我显然可以使用Eclipse MAT之类的东西浏览该集合,但是真的很想能够在集合对象上实际调用getter.在ConcurrentHashMap尝试找到我需要的映射时,这显然比通过段更清晰.
我想我正在寻找的是某种方法来"重新水化"命名集合的转储状态,以便可以使用标准API对其进行操作.
有没有人知道任何这样的实用程序,或者,如果没有,有人可以提供一些示例代码或指示如何实现这一点?
如果在Mongo中仅使用两个节点设置副本集,则需要添加仲裁器以确保对新主节点的投票总是占多数.仲裁者本身永远不会成为主人,只是在其他方面进行选举时提供投票.
将客户端(在我的Java中)连接到MongoDB集群时,我们应该在连接配置中指定集群的所有节点:
List addrs = new ArrayList();
addrs.add( new ServerAddress( "localhost" , 27017 ) );
addrs.add( new ServerAddress( "localhost" , 27018 ) );
Mongo mongo = new Mongo(addrs);
Run Code Online (Sandbox Code Playgroud)
仲裁器是否应包含在连接配置中?我猜不会像他们一样:
没有数据的副本,永远不会成为主要节点(甚至是可读的次要节点)
(摘自这里)
...但我只想仔细检查!
Peter Lawrey撰写了大多数人在他的博客上遗忘的两个Enums of Enums.
首先,我没有忘记 - 我甚至没有意识到:)
这些方法简洁明了 - 与更传统的实现相同方法的方法相比,除了简洁之外还有什么好处,比如使用final带有private实用程序类构造函数的类?
此外,是否有任何问题(除了令人困惑的程序员不期待它)?
我有一个带有以下注释的实体:
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"name"})})
public class Component extends Model {
...
}
Run Code Online (Sandbox Code Playgroud)
是否可以使UniqueConstraint不区分大小写?我们正在使用PostgreSQL.
当尝试从原型(使用mvn archetype:generate)生成Maven项目时,该命令返回许多原型.
有没有办法过滤给出一个单词的原型(包含在groupId或artifactId中)?
我知道你实际上可以创建一个具有特定原型的项目,带有类似的参数-DgroupID=org.domain -DartifactId=sample,但它不是我想要的.
我们在Intranet上运行了一个生产Web应用程序:
配置有:
-Xms2g
-XX:PermSize=256m
-Xmx4g
-XX:MaxPermSize=256m
-Xss192k
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=50
-XX:+DisableExplicitGC
Run Code Online (Sandbox Code Playgroud)每天堆使用情况:
此时堆在大约40分钟内上升到55%,并且无限制地回收到37%,直到下一次重新启动.
我们在JVM上安装了AppDynamics,可以看到主要垃圾收集大致每分钟发生一次,对内存没有太大影响(当然除了上面描述的下降),直到内存达到37%,而主要收集变得更少频繁.
Web应用程序的行为显然有数百个因素,但研究的一个途径是当JVM停止时Hotspot JIT信息明显丢失.
是否有关于JVM关闭的GC优化/等等?JVM是否实际上消耗了比它需要更多的内存,因为某些Hotspot优化还没有发生?
如果没有重新启动JVM并且我们找到了另一种执行数据库备份的方法,那么我们是否有可能从这个应用程序获得更好的内存性能?
(重申一下,我知道有十万件事可能影响应用程序的行为,尤其是一个几乎没有人知道的应用程序!我真的只想知道是否有某些与内存性能有关的事情.一个在停止时丢失的JVM)