反应堆模式在维基百科中解释,它有点过于抽象.你能用更具体的方式描述这种模式吗?理想情况下,使用代码片段或描述反应器模式的一些应用的高级类图.
看起来Chainsaw的开发已经在4年前停止了(2006-03-02的最后开发版本)......
任何人都知道提供相同功能的替换工具,但有更新的版本?
任何人都可以解释为什么下面的行在运行时出现在输出控制台中?
(一个可能的答案是完全permGen,但这可以排除,因为该程序仅使用PermGen中可用的max100MB中的24MB)
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor28]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor14]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor4]
[卸载类sun.reflect.GeneratedMethodAccessor5]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor38]
[卸载类sun. reflect.GeneratedSerializationConstructorAccessor36]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor22]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor8]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor39]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor16]
[卸载类sun.reflect.GeneratedSerializationConstructorAccessor2]
[卸载类sun.reflect.GeneratedConstructorAccessor1]
该程序使用以下参数运行:
-Xmx160M
-XX:MaxPermSize参数= 96M
-XX:PermSize = 96M
-XX:+ UseConcMarkSweepGC
-XX:+ UseParNewGC
-XX:+ PrintGCTaskTimeStamps
-XX:+ PrintHeapAtGC
-XX:+ PrintTenuringDistribution
-XX:+ PrintGCDetails
-XX:+ PrintGCDateStamps
- XX:+ PrintGCTimeStamps
-verbose:gc
-Xloggc:/logs/gc.log
堆中和permGen中有足够的空间.
目前我必须编写以下内容来更新已包含在Set中的元素:
Set mySet= ...
Element e1 = new Element (...);
....
....
Element e2 = new Element (...);
\\e1 and e2 are different instances, but equals.
\\update the element contained into the Set
if (mySet.contains(e2)){
mySet.remove(e2);
myset.add(e2);
}
Run Code Online (Sandbox Code Playgroud)
那看起来不太好看.还有其他选择吗?
我正在寻找关于如何在低延迟至关重要的环境中最好地确定年轻一代(相对于老一代)的规模的论据.
我自己的测试往往表明延迟最低,当年轻的一代是相当大(例如-XX:NewRatio <3),但是我不能与直觉,较大的年轻一代更多的时间,应该采取垃圾调和这搜集.
该应用程序在Linux 64位,jdk 6上运行.
内存使用量大约是50兆字节的启动时加载的长寿命对象(=数据缓存),并且从那里开始只创建(很多)非常短暂的对象(平均寿命<1毫秒).
一些垃圾收集周期需要超过10毫秒才能运行...与app延迟相比看起来真的不成比例,而app延迟又是几毫秒.
两个Object实例是否可能具有相同的哈希码?
理论上,对象的哈希码是从其内存地址派生的,因此所有哈希码都应该是唯一的,但是如果在GC期间移动对象会怎样?
为了弥补我(明显)缺乏网络基础知识,我正在寻找一本理想的书:
- >传输层上的1或2章:tcp,udp ...
- >应用层上的1或2章:http,dns ......
- >本书的其余部分将致力于使用Java相关技术通过线路发送数据的实用方法.这将涉及对现有产品的讨论(例如,粗麻布,protobuf,节俭,tibco ......),性能比较,案例研究等.
这样的书存在吗?
编辑:感谢所有答案到目前为止...但是,列出的大多数书籍都非常关注网络堆栈的较低级别(即.tcp/ip,网络管理......).这只是答案的一半.我仍然渴望听到有关另一半的建议:围绕Java开发人员提供的"最先进"选项进行讨论,以便提供数据,提供哪些产品/框架以及如何进行比较.
我听说过具有严格延迟要求的Java程序,其中"新"指令永远不会 - 或者很少使用(因为没有新的=>没有对象 - >没有GC =>改进的延迟)...而是处理所有业务逻辑使用原语.
我无法在网上找到这种技术的参考资料......任何关于讨论这种技术或代码片段的网页的链接都将非常感激.
任何人都可以解释visualvm采样功能背后的科学吗?
我原以为收集每个特定方法花费的CPU数量需要对应用程序进行分析,但看起来并不像visualvm正在做任何类型的工具,所以我很想知道它是如何完成的......
查看LinkedHashMap的JDK源代码,我注意到这个类被声明为:
public class LinkedHashMap<K,V>
extends HashMap<K,V>
implements Map<K,V>
{...
Run Code Online (Sandbox Code Playgroud)
为什么冗余的" implements Map<K,V>"(因为HashMap已经实现了Map)?我无法想象这是一个错字......
谢谢.
java ×8
collections ×1
hashcode ×1
log4j ×1
logging ×1
networking ×1
performance ×1
real-time ×1