alibaba / alibaba/QLExpress

3.2.4中引用的 commons-beanutils 性能问题

Open
#429 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
5.6k
Forks
1.2k
PR merge metrics
No merged PRs in 30d

Description

3.2.4 在访问对象属性时使用了 Apache Commons BeanUtils 的 PropertyUtilsBean,导致频繁同步和反射开销。qps高的时候,大量锁冲突造成流量上不去。

org.apache.commons.beanutils.BeanUtilsBean.getInstance(): 78
org.apache.commons.beanutils.PropertyUtilsBean.getInstance(): 101
org.apache.commons.beanutils.PropertyUtils.getProperty(Object, String): 290
com.ql.util.express.ExpressUtil.getProperty(Object, Object): 544

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at com.ql.util.express.ExpressUtil.getProperty(Object, Object) and trace the calls into BeanUtilsBean.getInstance(), PropertyUtilsBean.getInstance(), and PropertyUtils.getProperty(Object, String). Reproduce the high-QPS contention described by the issue, then confirm completion with a benchmark or profile showing that the reported synchronization and reflection overhead has been addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.