Dom4j 锁竞争性能低下解决

在最近的项目中使用 Dom4j 解析 xml 发现性能低下,有锁竞争的情况,解决如下:

1 SAXParserFactory factory = new org.apache.xerces.jaxp.SAXParserFactoryImpl();
2 factory.setValidating(false);
3 factory.setNamespaceAware(false);
4 SAXReader reader = new SAXReader();
5 reader.setXMLReader(factory.newSAXParser().getXMLReader());
6 Document document = reader.read(new InputSource(new StringReader(xmlString)));
7 Node node = document.selectSingleNode(xpath);

选择使用 xerces 的 XMLReader 进行解析,问题解决。

时间: 2024-10-07 17:19:06

Dom4j 锁竞争性能低下解决的相关文章

raspberry pi 3 openjdk 性能低下解决方法

在使用nutch 是时候发现generate的性能很低,应该是openjdk的问题. orcale 实际已经提供了armhf的jdk,替换下性能就上去了 jdk下载链接:Download 配置方法和普通的ubuntu系统相同

shared pool 和buffer pool 详解(之二, Cache Buffers LRU Chain、Cache Buffers LRU Chain闩锁竞争与解决)

[深入解析--eygle]学习笔记 1.1.2  Cache BuffersLRU Chain闩锁竞争与解决 当用户进程需要读数据到Buffer Cache时或Cache Buffer根据LRU算法进行管理等,就不可避免的要扫描LRU  List获取可用Buffer或更改Buffer状态,我们知道,Oracle的Buffer Cache是共享内存,可以为众多并发进程并发访问,所以在搜索的过程中必须获取Latch(Latch是Oracle的一种串行锁机制,用于保护共享内存结构),锁定内存结构,防止

锁是用来解决并发问题

共享锁,又称为读锁,获得共享锁之后,可以查看但无法修改和删除数据. 排他锁,又称为写锁.独占锁,获得排他锁之后,既能读数据,又能修改数据. 为什么要加锁 很多人都知道,锁是用来解决并发问题的,那么什么是并发问题呢?并发情况下,不加锁会有什么问题呢? 拿生活中的洗手间举例子,每个洗手间都会有一个门,并且是可以上锁的,当我们进入洗手间之后会把门反锁,当我们出来之后再把锁打开. 当门被锁上之后,其他人只能在门外等待.洗手间之所以要有门锁,就是为了保护隐私的,避免出现多个人同时进入洗手间的情况. 这和数

【转载】数据库大并发操作要考虑死锁和锁的性能问题

本文转载自:http://blog.csdn.net/yuanyuanispeak/article/details/52756167 1 前言 数据库大并发操作要考虑死锁和锁的性能问题.看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程.T3,T4以此类推.下面以SQL Server(2005)为例. 2 锁的种类 共享锁(Shared lock). 例1: -------

7 怎么减少行锁对性能的影响?

7 怎么减少行锁对性能的影响? MySQL的行锁是在引擎层由各个引擎自己实现的,并不是所有的引擎都支持行锁,比如myisam引擎就不支持行锁,不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何 时刻只能有一个更新在执行,这就会影响到业务并发度. 这一章主要聊innodb的行锁,以及如何通过减少锁冲突来提升业务并发度. 从两阶段锁说起 Session a Session b begin; update t set k=k+1 where id=1; update t set k

beego默认处理静态文件性能低下的问题

今天使用ab(apacheBench)测试了一下beego的性能. 3Kbytes动态文件,在i3上可以达到每秒1W次响应的性能.但是在测试静态文件时,beego出现了问题.ab测试参数:100次请求,并发数5.问题表现:70%的请求直接失败,连接断开.按道理来说,一个web server框架,静态文件的性能,应该是高于动态文件性能的.在动态文件性能达到1W/s的情况下,没理由静态文件性能这么低下. 然后查看了一下beego的源代码.发现beego在处理动态文件请求时,有缓存.而处理静态文件时,

查看sqlserver 2008中性能低下的语句

经常使用这个语句来查看性能低下的sql语句: SELECT creation_time N'语句编译时间' ,last_execution_time N'上次执行时间' ,total_physical_reads N'物理读取总次数' ,total_logical_reads/execution_count N'每次逻辑读次数' ,total_logical_reads N'逻辑读取总次数' ,total_logical_writes N'逻辑写入总次数' ,execution_count N'

CAS原子操作实现无锁及性能分析

Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:Nov 13th, 2014 最近在研究nginx的自旋锁的时候,又见到了GCC CAS原子操作,于是决定动手分析下CAS实现的无锁到底性能如何,网上关于CAS实现无锁的文章很多,但少有研究这种无锁的性能提升的文章,这里就以实验结果和我自己的理解逐步展开. 1.什么是CAS原子操作 在研究无锁之前,我们需要首先了解一下CAS原子操作-

07 | 行锁功过:怎么减少行锁对性能的影响? 学习记录

<MySQL实战45讲>07 | 行锁功过:怎么减少行锁对性能的影响?  学习记录http://naotu.baidu.com/file/4cb2c22bd1b54678bf25d8af20bc70b8?token=f63a35dd193aa811 原文地址:https://www.cnblogs.com/jtfr/p/11260309.html