bash get_specified_source.sh jdk8u77Note: This script does not validate the input.
| set logging on | |
| set logging file /path/to/file | |
| f 7 | |
| p/x counter | |
| p/x counter->objData | |
| p/x (TObjectData *)counter->objData | |
| p/x counter->objData->klassOop |
jdeps -M -s lib/*
jdeps -genmoduleinfo msrc lib/*
jdeps -R -cp lib/* lib/(what_you_want).jar
jdeps -s -R -cp lib/* lib/(what_you_want).jar
jdeps -s -ct -R -cp lib/* lib/(what_you_want).jar
jlink --help
jlink --modulepath $JMODS --addmods java.base --output yimage --exclude-files *.diz
| diff -r d284ec1e1226 Makefile.am | |
| --- a/Makefile.am Wed Oct 14 10:43:58 2015 +0900 | |
| +++ b/Makefile.am Tue Oct 20 16:54:18 2015 +0900 | |
| @@ -26,14 +26,14 @@ | |
| install-exec-local: | |
| $(mkdir_p) $(DESTDIR)/$(libexecdir) | |
| $(mkdir_p) $(DESTDIR)/$(libexecdir)/lib | |
| - $(INSTALL_DATA) $(ANALYZER_DIR)/THIRD_PARTY_README $(DESTDIR)/$(libexecdir) | |
| - $(INSTALL_DATA) $(ANALYZER_DIR)/heapstats-analyzer.jar $(DESTDIR)/$(libexecdir) | |
| - $(INSTALL_DATA) $(ANALYZER_DIR)/filterDefine.xsd $(DESTDIR)/$(libexecdir) |
| sudo dnf install -y --enablerepo="*debug*" hg net-snmp net-snmp-devel gcc gcc-c++ binutils binutils-devel maven ant java-1.8.0-openjdk java-1.8.0-openjdk-devel java-1.8.0-openjdk-debuginfo | |
| hg clone http://icedtea.classpath.org/hg/heapstats | |
| cd heapstats/ | |
| ./configure; make agent | |
| sed -e "s/thread_record_enable=false/thread_record_enable=true/" agent/heapstats.conf > agent/heapstats_threadrecorder.conf | |
| cd agent/test/deadlock | |
| javac DLSample.java | |
| java -agentpath:../../src/libheapstats.so=../../heapstats_threadrecorder.conf DLSample 5 |
| object HelloWorld { | |
| def main(args: Array[String]) { | |
| println("Hello, world!") | |
| } | |
| } |
| import javafx.scene.Node; | |
| import javafx.scene.Parent; | |
| // : | |
| private void dump(Node n, int depth) { | |
| for (int i = 0; i < depth; i++) System.out.print(" "); | |
| System.out.println(n); | |
| if (n instanceof Parent) for (Node c: ((Parent) n).getChildrenUnmodifiable()) dump(c, depth + 1); | |
| } | |
| // : |
| # streams: some indexable collection | |
| IntStream.range(0, streams.size()) | |
| .forEach(index -> | |
| some.process( | |
| index, | |
| streams.get(index) | |
| ) | |
| ); |
本セッションは前半は HeapStats についての通常セッション、後半はハンズオン形式で HeapStats を実際に使用して簡単なトラブルシューティングを行う形式になっています。後半のハンズオンセッションは大きく以下の内容を実施します。
このため、後半のハンズオンに参加される方は、十分に充電したノート PC をご持参頂く必要があります。
| >IBMの@ashigeru | |
| IBM さんや @ashigeru さんの資料でした。2資料です。ちなみにそれぞれ | |
| http://www.ibm.com/developerworks/jp/websphere/library/java/j2ee_classloader/index.html | |
| http://www.slideshare.net/ashigeru/classloader | |
| です。 | |
| >YoungとOldは、参照があるかどうかの違い。不要になったタイミングでGCで回収される。 | |
| すみません、伝え方が悪かったようです。「参照がなくなったときに不要になる。不要になったタイミングでGCに回収される」です。主なYoungとOldの違いはオブジェクトの年齢で、参照云々は別の話でした。(参照され続けてオブジェクトが長生きしてたらYoungからOldへ移動する) |