improve profile performance (#69)

* improve profile performance
* support profile nested class
* support total_wasted time
* calculate totalChildrenWasted time for echarts
* only profile super class in the same package
* improve perf through local-tree,local-timer,local-stack
* improve test case
* add Stopwatch remove-child test
* fix can't profile parent class with 2 class not in the same package
* add totalChildrenTimes
* improve LocalTimer perf
* add PerfUtil.useLightStopwatch(true)
* define behavior of switching light-stopwatch process
* ignore other threads if profileSingleThread(true) with multi-threads
* improve the empty judgment the first call in useLightStopwatch()

Change-Id: Id1ae075ddffec77b95b31142d7ebcdae87371943
15 files changed
tree: 76e3f81e6f52031eca2cd15e2765cc23419c7c8f
  1. src/
  2. .gitignore
  3. .travis.yml
  4. BCLOUD
  5. build.sh
  6. checkstyle.xml
  7. LICENSE
  8. pom.xml
  9. README.md
README.md

hugegraph-common

License Build Status codecov Maven Central

hugegraph-common is a common module for HugeGraph and its peripheral components. hugegraph-common encapsulates locks, configurations, events, iterators, rest and some numeric or collection util classes to simplify the development of HugeGraph and its components.

Components

  • Lock: atomic lock, key lock, lock group and lock manger
  • Config: register and load config option with security check
  • Event: listening and notification, do something asynchronously
  • Iterator: some iterators with extra functions, map, filter, extend etc.
  • Rest: RESTful client implemented on Jersey, POST, PUT, GET and DELETE
  • Util: Performance analyzer, version checker, numeric and Collection utils, log and exception utils etc.

Licence

The same as HugeGraph, hugegraph-common is also licensed under Apache 2.0 License.