Skip to content

Instantly share code, notes, and snippets.

@ykubota
ykubota / result of tree.sh
Last active August 29, 2015 13:57
tree heapstats-analyzer-1.1.0
heapstats-analyzer-1.1.0
├── filterDefine.xsd
├── heapstats.jar
├── heapstats.properties
├── howtouse_ja.txt
├── howtouse.txt
└── lib
├── jcommon-1.0.18.jar
├── jfreechart-1.0.15.jar
├── jgraphx.jar
@ykubota
ykubota / psg.sh
Created June 8, 2014 13:31
ps and grep
#!/bin/bash
# custom favorite ps option(s)
ps='ps auxww'
this=$0
$ps | head --lines=1
for i in $*
do
# set [c]mmand to avoid grep
@ykubota
ykubota / run.sh
Last active August 29, 2015 14:15
Specify JVM options (-XX) by file.
java -XX:Flags=vm.option.txt XXX
>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へ移動する)
@ykubota
ykubota / Readme.md
Last active August 29, 2015 14:18
JJUG CCC 2015 Spring、M-3 HeapStats: Javaトラブルシューティング ハンズオン の参加にあたっての前準備

JJUG CCC 2015 Spring

M-3 HeapStats: Javaトラブルシューティング ハンズオン への参加にあたって

本セッションは前半は HeapStats についての通常セッション、後半はハンズオン形式で HeapStats を実際に使用して簡単なトラブルシューティングを行う形式になっています。後半のハンズオンセッションは大きく以下の内容を実施します。

  1. HeapStats agent を利用して情報収集。
  2. 講師が用意した HeapStats 出力ファイルを元に、HeapStats analyzer を利用して解析。

このため、後半のハンズオンに参加される方は、十分に充電したノート PC をご持参頂く必要があります。

# streams: some indexable collection
IntStream.range(0, streams.size())
.forEach(index ->
some.process(
index,
streams.get(index)
)
);
@ykubota
ykubota / Dump.java
Last active September 3, 2015 01:13
dump JavaFX Node struct to show all Java classes and css style classes.
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);
}
// :
@ykubota
ykubota / HelloWorld.scala
Created October 14, 2015 13:15
Scala + HeapStats
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
@ykubota
ykubota / make.sh
Last active October 19, 2015 12:45
ThreadRecorder + DeadLock 検知を試してみる
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
@ykubota
ykubota / spec_2.0.patch
Created October 20, 2015 13:51
Bump to 2.0. (agent/mbean)
This file has been truncated, but you can view the full file.
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)