メモリーの動作確認用アプリ

最近Red5の動作上でout of memoryが頻発していい加減いやになったので、調査を実施してみようとおもいます。

手始めにJavaのメモリー動作を確認するために、適当なコンソールアプリを作成しました。
Eclipse用
構成

Run(実行)プロパティーに-Xloggc:gc.logを追加(このGCログをgcviewerでみることにする。)

備考このプログラムをうごかすにはslf4j-api、logback-core、logback-classicの各ライブラリが必要です。いれるのが面倒な場合は、slf4jのimportを削除し、Loggerの記述を削除してください。

App.java
  1. package com.taktod.test;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5.  
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8.  
  9. /**
  10.  * エントリー
  11.  * @author taktod
  12.  */
  13. public class App {
  14. protected static Logger logger = LoggerFactory.getLogger(App.class);
  15. private static BufferedReader br;
  16. public static void main(String[] arg) {
  17. String command;
  18. while(true) {
  19. print("please input command...");
  20. command = getline();
  21. if(command.equals("gc")) {
  22. System.gc();
  23. }
  24. else if(command.equals("exit")) {
  25. break;
  26. }
  27. else {
  28. System.out.println("no such command: " + command);
  29. }
  30. }
  31. }
  32. /**
  33. * 表示補助
  34. * @param str 表示文字列
  35. */
  36. public static void print(String str) {
  37. System.out.println(str);
  38. }
  39. /**
  40. * 入力取得補助
  41. * @return 入力文字列
  42. */
  43. public static String getline() {
  44. try {
  45. return br.readLine();
  46. }
  47. catch(Exception e) {
  48. System.exit(0);
  49. return "";
  50. }
  51. }
  52. }
  53.  

logback.xml
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <configuration>
  3.  
  4. <appender name="STDOUT"
  5. class="ch.qos.logback.core.ConsoleAppender">
  6. <Target>System.out</Target>
  7. <layout class="ch.qos.logback.classic.PatternLayout">
  8. <Pattern>%d{yyyy/MM/dd HH:mm:ss} [%thread] %-5level %class{0} %method[%line] %msg%n</Pattern>
  9. </layout>
  10. </appender>
  11.  
  12. <appender name="FILE"
  13. class="ch.qos.logback.core.rolling.RollingFileAppender">
  14. <Encoding>UTF-8</Encoding>
  15. <File>sample.log</File>
  16. <layout class="ch.qos.logback.classic.PatternLayout">
  17. <Pattern>%d{yyyy/MM/dd HH:mm:ss} [%thread] %-5level %class{0} %method[%line] %msg%n</Pattern>
  18. </layout>
  19.  
  20. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  21. <FileNamePattern>testlog/sample.%d{yyyy-MM-dd}.zip</FileNamePattern>
  22. <MaxHistory>4</MaxHistory>
  23. </rollingPolicy>
  24. </appender>
  25.  
  26. <logger name="com.taktod.test">
  27. <level value="INFO" />
  28. </logger>
  29.  
  30. <root>
  31. <level value="WARN" />
  32. <appender-ref ref="STDOUT" />
  33. <!--<appender-ref ref="FILE" />-->
  34. </root>
  35. </configuration>

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年12月25日 10:02
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル