Timing, Monitoring, Microbenchmarks and Metrics for Java

Yammer Metrics

http://www.javacodegeeks.com/2012/12/yammer-metrics-a-new-way-to-monitor-your-application.html
http://metrics.codahale.com/getting-started/
http://metrics.codahale.com/manual/core/#man-core-reporters-slf4j
http://metrics.codahale.com/manual/servlets/#manual-servlets
JConsole, System Console, Ganglia, Graphite, CSV, or making them available through a web server.
Timers.

Very advanced, does monitorings and other enterprise features.

Perf4j
http://perf4j.codehaus.org/
just for timing metrics
http://perf4j.codehaus.org/devguide.html
http://www.infoq.com/articles/perf4j
now on github
Parse log files with tool for stats report, csv, google charts
log4j or logback required
can use annotations, direct call or aspects
work restarted recently
maven: http://repository.codehaus.org/org/perf4j/perf4j/
http://mvnrepository.com/artifact/org.perf4j/perf4j

JavaSimon
https://code.google.com/p/javasimon/
https://code.google.com/p/javasimon/wiki/MavenSupport
https://code.google.com/p/javasimon/wiki/JavaEE
https://code.google.com/p/javasimon/wiki/Readme
Microbenchmarks:
https://code.google.com/p/javasimon/wiki/Microbenchmarks
Simple to use
https://code.google.com/p/javasimon/wiki/GettingStarted
https://code.google.com/p/javasimon/wiki/PerformanceResources
includes a webconsole: https://code.google.com/p/javasimon/wiki/WebConsole
https://code.google.com/p/javasimon/wiki/WebConsolePlugins
https://code.google.com/p/javasimon/wiki/Introduction
Performance measurement plus timers
monitoring
improvement over http://jamonapi.sourceforge.net/

Timing Issues
http://www.ibm.com/developerworks/java/library/j-benchmark1/index.html#table1
https://www.ibm.com/developerworks/java/library/j-benchmark2/
http://www.ellipticgroup.com/html/benchmarkingArticle.html
https://code.google.com/p/caliper/wiki/JavaMicrobenchmarks
http://www.ibm.com/developerworks/java/library/j-jtp02225/

Microbenchmarking

Caliper
https://code.google.com/p/caliper/
https://code.google.com/p/caliper/wiki/BestPractices

jmh
http://openjdk.java.net/projects/code-tools/jmh/
http://webcache.googleusercontent.com/search?q=cache:V1ij-eU-QvEJ:psy-lob-saw.blogspot.com/2013/04/writing-java-micro-benchmarks-with-jmh.html+&cd=4&hl=en&ct=clnk&gl=us
http://shipilev.net/pub/talks/jvmls-July2013-benchmarking.pdf

JAPEX
https://japex.java.net/
https://japex.java.net/docs/manual.html

Monitoring

Java Melody
https://code.google.com/p/javamelody/
https://code.google.com/p/javamelody/wiki/Screenshots#Charts
JIRA plugin, jar for web integration, Confluence plugin
https://marketplace.atlassian.com/plugins/net.bull.javamelody
used by Jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Monitoring
Example Site: http://demo.javamelody.cloudbees.net/monitoring

Servo
http://webcache.googleusercontent.com/search?q=cache:Y3mMIVEAVsMJ:https://github.com/Netflix/servo/wiki+&cd=1&hl=en&ct=clnk&gl=us

btrace with visualjvm for local
https://kenai.com/projects/btrace

Java run-time monitoring, Part 1: Run-time performance and availability monitoring for Java systems
http://www.ibm.com/developerworks/library/j-rtm1/

Eclipse Tools

Profiling

Developer Machine Java Profiling

Standard Java Profilers

Other Tools

IBM Tools (Free) – local

Helper Local Tools

AppDynamics

This is a very good report on comparing the leading two Application Performance Management (APM).

http://bbramley.blogspot.com.au/2012/01/apm-market-disruptors-appdynamics-and.html

Thsi is a very good summary of all of the available features: http://www.appdynamics.com/product/product-features#div-monitor

AppDynamics provides both “Deep Dive Component Monitoring” and Analytics/Reporting. AppDynamics has a plugin for
JIRA (http://www.appdynamics.com/extension/jira), F5 (http://www.appdynamics.com/extension/f5),
Apache (
http://www.appdynamics.com/extension/apache-http-server), mongoDB
(
http://www.appdynamics.com/extension/mongodb).

Performance

http://www.appdynamics.com/solutions/java-monitoring

Uses of AppDynamics
http://www.appdynamics.com/blog/2012/05/04/finding-the-root-cause-of-application-performance-issues-in-production/

finding Slow SQL, slow web service calls, XML processing issues, mail server issues, JDBC issues, 3rd party libraries, transaction issues,

http://www.appdynamics.com/case-study/edmundscom
http://www.appdynamics.com/roi (Netflix)

Links

UML Tools

History of Web Application Servers 1990s…

http://www.javaworld.com/article/2072205/core-java/time-to-take-out-weblogic.html

At PriceWaterhouseCoopers we evaluated Kiva, Netdynamics, Weblogic, Netscape, Sun and some others.

Then we were doing SilverStream at Charterhouse.

Websphere, Weblogic, …

Tomcat in 1999 (http://en.wikipedia.org/wiki/Apache_Tomcat)

We had to write our own JSP tags and wrapped early JDBC 1.0 resultsets in our own offline collections.

http://servlets.com/articles/

http://en.wikipedia.org/wiki/Resin_Server

http://www.apl.jhu.edu/~hall/java/CGI-with-Java.html

http://www.javaworld.com/article/2076863/java-web-development/write-cgi-programs-in-java.html

http://www.coreservlets.com/

 

 

C# to Java

Convert C# to Java
http://www.cs2j.com/download/

http://csharpjavamerger.org/download.html

http://jni4net.sourceforge.net/

http://sourceforge.net/projects/j2cstranslator/

http://sourceforge.net/apps/mediawiki/j2cstranslator/index.php?title=Main_Page

 

java to msmq
https://msmqjava.codeplex.com/

http://sourceforge.net/projects/javamsmq/

http://sourceforge.net/projects/jms-msmq/

 

Zing JVM
http://www.azulsystems.com/products/zing/whatisit

http://www.azulsystems.com/products/zing/how-to-evaluate

http://www.azulsystems.com/sites/default/files/images/What_Zing_Can_Do_v4.pdf

http://www.infoq.com/news/2013/05/lmax-zing