场景:我有一个示例应用程序,我有3种不同的系统配置 -
- 2 core processor, 2 GB RAM, 60 GB HHD,
- 4 core processor, 4 GB RAM, 80 GB HHD,
- 8 core processor, 8 GB RAM, 120 GB HHD
Run Code Online (Sandbox Code Playgroud)
为了有效地利用我的应用程序的H/W功能,我希望配置no.应用程序级别的线程数.但是,我希望在彻底了解系统功能之后才能这样做.
是否有某种方式(系统/模式/工具)来参考最大值和最小值来确定系统实力.它可以最佳地服务并且不会降低效率和性能.通过这种方式,我只能为我的应用程序配置那些能够完全正义并为各自的硬件配置实现最佳性能的值.
Edited1: 任何人都可以建议任何关于如何为特定h/w配置设置基线的读数.
编辑2: 使其更直接 - 希望学习/了解我可以阅读的任何资源/文章,以获得对一般/整体级别的线程CPU管理的一些了解.
为什么需要抢先认证?
System.setProperty("httpclient.authentication.preemptive", "true");
我用java编写了Web服务访问客户端程序。我们在 call 对象中设置用户名和密码的地方,它工作得很好。
最近,我们的服务提供商在他们身边进行了一些更改,之后他们在网络服务调用中没有收到用户名和密码,并且由于他们没有收到用户名和密码,因此我们无法连接到他们的(提供商)服务。
然后我用谷歌搜索并发现了抢占式身份验证。在调用 Web 服务时,我们将 "httpclient.authentication.preemptive" 设置为 "true" - System.setProperty("httpclient.authentication.preemptive", "true"); ,然后我们就可以从我们的服务提供商那里收到回复。
当我们删除 System.setProperty("httpclient.authentication.preemptive", "true"); 线然后我们无法连接到他们的服务。
我正在获得JMS异常,似乎队列没有退出或者它没有完成任务.
消息是异步的,它在大多数情况下工作正常,但有时会低于异常.似乎听众在另一边继续听,但在制作人一方得到了这个例外.
javax.jms.JMSException: java.io.InterruptedIOException
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1266)
at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1350)
at org.apache.activemq.ActiveMQConnection.start(ActiveMQConnection.java:495)
at com.vtech.mqservice.response.SendResponse.sendResponseToQueue(SendResponse.java:44)
Caused by: java.io.InterruptedIOException
at org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:102)
at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
at org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:74)
at org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:79)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1244)
... 0 more
Run Code Online (Sandbox Code Playgroud)
请帮我确定导致生产者线程被中断的原因.
我将activemq版本升级到最新版本并将更新调查结果.
请指出我正确的方向?
更新:正在使用的ActiveMQ版本是activemq-all-5.3.0.jar
我正在寻找最新的,内存效率和高性能的Java XML解析API.我需要解析3 MB到5 MB的XML文件.
我对此进行了谷歌搜索并了解了Sun Java Streaming XML Parser(SJSXP),而Woodstox比DOM和SAX快得多.两者都使用StAX API.*这些技术不支持架构验证.
Aalto XML处理器也实现了StAX API.
我没有找到关于这些技术的性能的具体发现.
哪一个在内存高效,高性能和易用性方面最佳?
当应用程序使用了几分钟,然后慢慢增加了二手内存值,降低自由内存值。几分钟后应用程序变得非常缓慢。为什么不释放内存。
系统配置 :
应用配置:
Tomcat设置
自由 -h 命令
顶部命令
. .
二手展示12 GB的内存占用的价值和自由的内存值显示免费600 MB。我执行了多个并发用户搜索并运行jcmd命令生成 heapdump.hprof 来分析内存使用情况,并观察到 heapdump 文件大小不超过 600 MB。
已用内存为 12 GB,heapdump 为 600 MB - 我不知道为什么内存没有释放或释放。
任何人都可以就如何设置/配置以提高特定硬件配置的内存使用率提出任何建议。
我正在使用 ObjectMapper 的 writeValueAsString 方法将 Java bean 转换为 JSON 字符串,其中来自 Java bean 的大写变量在 JSON 字符串中被更改为小写。Jackson 2.7.4 版本已实现。基豆样品 -
public class BaseBean {
private static final long serialVersionUID = 3947489072259877540L;
private int _iXId;
private String _sPNR;
private ArrayList _alMinPriced = new ArrayList<TermBean>();
public int getXId() {
return _iXId;
}
public void setXId(int id) {
_iXId = id;
}
public String getPNRNumber() {
return _sPNR;
}
public void setPNRNumber(String _spnr) {
_sPNR = _spnr;
}
public ArrayList getMinPriced() {
return _alMinPriced;
} …Run Code Online (Sandbox Code Playgroud) java ×6
akka ×1
cpu ×1
http-headers ×1
httprequest ×1
jackson ×1
javabeans ×1
jms ×1
json ×1
memory ×1
memory-leaks ×1
preemptive ×1
rabbitmq ×1
stax ×1
threadpool ×1
tomcat7 ×1
woodstox ×1
xml ×1
xml-parsing ×1