小编Erd*_*kın的帖子

确定*nix上的静态库cpu体系结构

有一个静态库,但我不确定为sparc或x86架构编译.如何在linux/unix上确定这个?

谢谢

unix cpu-architecture static-libraries

7
推荐指数
1
解决办法
4000
查看次数

Java CMS GC行为

我有一个导致创建大量垃圾的应用程序.第一个(和几乎一个)标准是低GC暂停时间.我使用visualgc工具(和gc日志)尝试不同的GC参数.最佳参数如下.

-XX:+ UseConcMarkSweepGC

-Xmx1172M

-Xms600M

-XX:+ UseParNewGC

-XX:新尺寸= 150M

我的应用程序在带有Java 1.6.0_21的SunOS 10上运行.硬件是2 x CPU四核(uname -X结果是numCPU = 8).

问题是

观察GC行为,在伊甸园空间上创建新对象,直到伊甸园已满.当eden space full GC运行时,清除垃圾,如果对象不是死复制到Old-gen(我丢弃'从'&'到'空格),同样Old-Gen已满,GC运行与CMS并发阶段并清除旧-gen空间.CMS的某些部分是Stop-the-world(暂停时间).这是一个循环.

  1. 以上场景是真的吗?
  2. 在GC清理旧的gen空间后,没有足够的空间扩展旧的gen空间(XMS和XMS值不同)?
  3. 完全GC操作开始时?怎么决定呢?
  4. CMS并发阶段持续时间取决于Eden空间大小,实际上我的期望是,Eden空间不会影响CMS并发阶段持续时间.GC与CMS并发阶段的eden空间有什么关系?
  5. 还有什么建议我最小化暂停时间?的确,对我来说最有价值的答案:)

谢谢

java garbage-collection

6
推荐指数
1
解决办法
1万
查看次数

Log4j不打印堆栈跟踪

我捕获NullPointerException但是log4j没有打印堆栈跟踪,我发生异常行的异常数等等有什么问题?

我的日志

20110412-101042,317[ Timer-7][R] Exception while processing for value: abc.                  [xyz.Dummy]
java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

log4j.property 文件

log4j.rootCategory=ERROR, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p %r [%t] : %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=my_application.log
log4j.appender.logfile.Append=true
log4j.appender.logfile.MaxBackupIndex =10
log4j.appender.logFile.MaxFileSize=40000KB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyyMMdd-HHmmss,SSS}[%8.8t][%.1p] %-70m[%c{2}]%n
Run Code Online (Sandbox Code Playgroud)

我的代码段

String value;
try {
   value = "abc";
   //... lots for code
}catch(Exception e) {
   logger.error("Exception while processing for value: " + value + ". ", e);
}
Run Code Online (Sandbox Code Playgroud)

java log4j

6
推荐指数
1
解决办法
1万
查看次数

Hashtable的超时机制

我有一个哈希表,在流量很大的情况下.我想为哈希表添加超时机制,删除太旧的记录.我担心的是, - 它应该是轻量级的 - 删除操作没有时间关键.我的意思是(超时值是1小时)删除操作可以在1小时或1小时15分钟后.没有问题.

我的意见是,我创建了一个大数组(作为环形缓冲区),存储时间和哈希表键,当添加到哈希表时,使用数组索引查找数组上的下一个插槽时间,如果数组插槽为空,则插入时间和HT键,如果数组槽不为空,则比较发生超时的插入时间.
如果发生超时从Hashtable中删除(如果尚未删除)则不会发生超时,增加索引直到找到空槽或时间数组槽.从哈希表中删除时,大数组上没有操作.

不久,对于Hashtable的每个添加操作,可以从哈希表中删除1个timeouted元素或不执行任何操作.

您的优雅和轻量级解决方案是什么?

谢谢你的帮助,

java algorithm timeout hashtable

3
推荐指数
2
解决办法
4799
查看次数

postgresql批量插入性能问题(关于mysql)

我有很多数据,我想至少时间插入数据库.我做了一些测试.我用21列创建了一个表(使用下面的脚本*1).1列是int,其他20列是string.没有索引.我编写了一个测试代码,创建一个随机值并插入到DB中(使用insert sql*2).在运行sql命令之前,调用conn.setAutoCommit(false)而不是conn.commit().此操作约6-7秒.有官方文件(*3)表示使用"COPY"命令进行批量插入.创建类似的ascii文件并重新测试,此测试完成约5秒.在同一台机器上使用相同的测试代码,将相同的数据插入Mysql,测试时间不到1秒.我真的很惊讶,6-7秒的性能提升很大.这有什么不同确实存在或我忽略了什么.

谢谢你的帮助

我的测试配置是solaris 10和PostgreSQL 9.0.2以及Mysql 5.0.85.

(*1)PostgreSQL创建数据库脚本

CREATE TABLE tablo
(
  id integer,
  column1 character varying(50),
  column2 character varying(50),
  column3 character varying(50),
  ....
  column20 character varying(50)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE tablo OWNER TO pgadmin;
Run Code Online (Sandbox Code Playgroud)

(*2)插入查询

INSERT INTO tablo values (1,'column67062724628797','column26007603757271','column73982294239806','column43213154421324','column97722282440805','column79000889379973','column10680880337755','column14322827996050','column80720842739399','column22777514445036','column77771307997926','column92799724462613','column89992937353110','column61693061355353','column43804223262229','column62209656630047','column52150955786400','column85726157993572','column33358888005133','column77743799989746'),(2,'column77383691774831','column67841193885377','column36149612452454','column51161680852595','column91649734476301','column57283307765550','column14997046117948','column29457857794726','column91157683305554','column44413196495111','column40702778794938','column24744999726868','column38356057278249','column16808618337554','column64362413535503','column19577167594144','column72943639162993','column46830376244427','column01942608599939','column66479131355003'),
....
10K lines
Run Code Online (Sandbox Code Playgroud)

(*3)官方PostgreSql文档地址 http://www.postgresql.org/docs/8.3/interactive/populate.html

mysql postgresql performance bulkinsert

2
推荐指数
1
解决办法
3816
查看次数

Jersey 客户端将内容类型标题设置为 text/plain

使用 jersey 客户端发送 HTTP 请求。Content-Type 标头自动设置为“application/json”(本质上),但我想用“text/plain”更改“content-type”标头,而不管任何规范、标准等。Jersey 版本是 2.4.1 .

代码

String target = "http://192.168.1.2:10000";
String path = "test3";

Client c = ClientBuilder.newClient ();
WebTarget target = c.target (target).path (path);

Entity<SubscriberBean> json = Entity.json (subscriber);
Builder request = target.request ();

String response = request.post(json, String.class);
Run Code Online (Sandbox Code Playgroud)

要求

POST /test3 HTTP/1.1
Accept: text/html
Content-Type: application/json
User-Agent: Jersey/2.4.1 (HttpUrlConnection 1.6.0_17)
Host: 192.168.1.2:10000
Connection: keep-alive
Content-Length: 278

///**** Some json data ***///
Run Code Online (Sandbox Code Playgroud)

java jersey

1
推荐指数
1
解决办法
2万
查看次数