我尽力解释我的问题.也许它有点抽象.
我读了一些关于不在Java代码中明确调用GC,终结方法,指向null等的文献.
我有一些大型XML文件(客户发票).使用Jaxb,文件在复杂的Java对象中进行编组.它的属性是基本类型(Integer,BigDecimal,String等),但也包括其他复杂类的类,其他类的列表,列表作为属性的类列表等.
当我用对象做我的东西时,我需要将它从内存中删除.有些XML非常大,我可以避免内存泄漏或OutOfMemoryError情况.
所以,我的问题是:
请原谅我混合Java内存使用概念,JaxB等.我正在研究大型运行进程的稳定性,而.hprof文件证明所有发票的所有客户数据都保留在内存中.如果这是一个简单,基本或罕见的问题,请原谅.
提前致谢
我有一个关于x轴刻度的问题.我使用jqPlot 0.9.7
我的刻度是多线的,如下所示:a <br> b <br> c <br> d.我使用renderer: $.jqplot.CategoryAxisRenderer它并且效果很好,因此刻度线在多行显示并且
有效.
现在我需要将它们旋转30º.我试过'角度:-30'但它不起作用.
使用此配置:
xaxis: {
renderer: $.jqplot.CategoryAxisRenderer,
tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
ticks: ['a <br> b <br> c <br> d' , 'p <br> q <br> r <br> s'],
tickOptions:{
angle: -30,
fontSize: '9px'
}
}
Run Code Online (Sandbox Code Playgroud)
刻度线显示在一条旋转的长线上.既没有<br>也没有\n
被解释为我需要.这是我发现的最佳方法.
这有什么解决方案吗?我怎么能写旋转的文本标记?
任何建议都对我很有帮助.提前致谢.最好的祝福
我想问一个关于在Java中避免String重复的问题.
该情境是:以标签的XML和属性像这样的:
<product id="PROD" name="My Product"...></product>
Run Code Online (Sandbox Code Playgroud)
使用JibX,这个XML在这样的类中被编组/解组:
public class Product{
private String id;
private String name;
// constructor, getters, setters, methods and so on
}
Run Code Online (Sandbox Code Playgroud)
该程序是一个长时间的批处理,因此产品对象被创建,使用,复制等.
好吧,问题是:当我用Eclipse内存分析器(MAT)这样的软件分析执行时,我发现了几个重复的字符串.例如,在id属性中,PROD值在2000个实例等周围重复.
我该如何避免这种情况?Product类中的其他属性可能会在执行时更改其值,但是像id,name ......这样的attrs 不会经常更改.
我已经了解了一些关于String.intern()方法的内容,但我还没有使用过,我不确定它是否是一个解决方案.我可以在这些属性中定义最常用的值,比如类中的静态最终常量吗?
我希望我能以正确的方式表达我的问题.非常感谢任何帮助或建议.提前致谢.
我正在测试从BoneCP到HikariCP的迁移.
基准(HikariCP Benchmark)的结果如下:
Benchmark (maxPoolSize) (pool) Mode Samples Score Score error Units c.z.h.b.ConnectionBench.cycleCnnection 32 hikari thrpt 16 1033,071 38,893 ops/ms c.z.h.b.ConnectionBench.cycleCnnection 32 bone thrpt 16 1648,954 42,610 ops/ms c.z.h.b.ConnectionBench.cycleCnnection 32 tomcat thrpt 16 592,838 21,709 ops/ms c.z.h.b.ConnectionBench.cycleCnnection 32 c3p0 thrpt 16 125,857 3,666 ops/ms c.z.h.b.ConnectionBench.cycleCnnection 32 vibur thrpt 16 831,693 9,299 ops/ms c.z.h.b.StatementBench.cycleStatement 32 hikari thrpt 16 49983,959 4796,385 ops/ms c.z.h.b.StatementBench.cycleStatement 32 bone thrpt 8 7022,146 526,111 ops/ms c.z.h.b.StatementBench.cycleStatement 32 tomcat thrpt 16 28777,731 1011,316 ops/ms c.z.h.b.StatementBench.cycleStatement 32 …
也许这是一个反复出现的问题,但我需要根据我的上下文进行一些自定义.
我正在使用Spring Batch 3.0.1.RELEASE
我有一些简单的工作,有一些步骤.一步是像这样的块:
<tasklet transaction-manager="myTransactionManager">
<batch:chunk reader="myReader" processor="myProcessor" writer="myWriter" commit-interval="${commit.interval}">
</batch:chunk>
Run Code Online (Sandbox Code Playgroud)
<bean id="myProcessor" class="org.springframework.batch.item.support.CompositeItemProcessor" scope="step">
<property name="delegates">
<list>
<bean class="...MyFirstProcessor">
</bean>
<bean class="...MySecondProcessor">
</bean>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)
通过这种配置,我的工作完美无缺.
现在,我想将其转换为多线程作业.在基本多线程作业的文档之后,我在tasklet中包含了一个SympleAsyncTaskExecutor,但它失败了.
我已经readed JdbcCursorItemReader与多线程执行无法正常工作(是不是?).我已经将读者更改为JdbcPagingItemReader,这已成为一场噩梦:作业不会失败,编写过程没问题,但数据在线程之间混合,客户数据不正确且连贯(客户有服务,添加,来自其他人).
那么,为什么会这样呢?我怎样才能更改为多线程作业?
我非常关心和困惑,所以任何帮助都会非常感激.非常感谢.
[编辑 - 已解决]
好吧,我的问题的正确和合适的解决方案是从开始设计多线程和线程安全执行的作业.习惯性地首先使用单线程步执行来理解和了解Spring Batch概念; 但如果你认为你要离开这个阶段,那么必须提出诸如不可变对象,线程安全列表,地图等的考虑因素.
目前我的问题的当前状态是我后面描述的下一个.在测试了马丁的建议并考虑到迈克尔的指导方针之后,我终于解决了我的问题.接下来的步骤不是很好的做法,但我无法从开始重建我的工作:
所以,如果委托的bean是:
<bean class="...MyProcessor">
<property name="otherBean" ref="otherBeanID" />
Run Code Online (Sandbox Code Playgroud)
改成:
<bean class="...MyProcessor">
<property name="otherBean" value="otherBeanID" />
Run Code Online (Sandbox Code Playgroud)
并且,在MyProcessor中,从上下文获取otherBeanID …
parallel-processing spring multithreading thread-safety spring-batch
我有一个关于Java中的重复Hashtables的问题(可能是重复的Java集合).
我的Hashtable有这样的对:
CC 看起来像这样:
public interface A extends Cloneable, Serializable{...}
public abstract class B implements A{...}
public class C extends B{...}
Run Code Online (Sandbox Code Playgroud)
我希望使用相同的内容将此哈希表复制到另一个具有相同内容的变量中new Hashtable(Map t).我的问题是:值对象进行此操作的条件是什么?我可以使用Hashtable复制构造函数吗?
我可以使用SerializationUtils.clone值,但执行时间太长.
提前致谢.
java ×3
duplicates ×2
benchmarking ×1
hashtable ×1
hikaricp ×1
jaxb ×1
jdbc ×1
jqplot ×1
memory-leaks ×1
rotation ×1
spring ×1
spring-batch ×1
string ×1
text ×1
vmware ×1