当前位置: 首页>>代码示例>>Java>>正文


Java ClassInstance类代码示例

本文整理汇总了Java中com.squareup.haha.perflib.ClassInstance的典型用法代码示例。如果您正苦于以下问题:Java ClassInstance类的具体用法?Java ClassInstance怎么用?Java ClassInstance使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


ClassInstance类属于com.squareup.haha.perflib包,在下文中一共展示了ClassInstance类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: readStringOffsetFromHeapDumpInstance

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test
public void readStringOffsetFromHeapDumpInstance() {
  buffer.setIntsToRead(COUNT_VALUE, OFFSET_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.INT, "offset"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createCharArrayValueInstance();

  String actual = HahaHelper.asString(stringInstance);
  assertTrue(actual.equals("bcdef"));
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:18,代码来源:HahaHelperTest.java

示例2: defaultToZeroStringOffsetWhenHeapDumpInstanceIsMissingOffsetValue

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test
public void defaultToZeroStringOffsetWhenHeapDumpInstanceIsMissingOffsetValue() {
  buffer.setIntsToRead(COUNT_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createCharArrayValueInstance();

  String actual = HahaHelper.asString(stringInstance);
  assertTrue(actual.equals("abcde"));
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:17,代码来源:HahaHelperTest.java

示例3: defaultToZeroStringOffsetWhenReadingMPreview2HeapDump

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test
public void defaultToZeroStringOffsetWhenReadingMPreview2HeapDump() {
  buffer.setIntsToRead(COUNT_VALUE, OFFSET_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.INT, "offset"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createCharArrayValueInstance_M_Preview2();

  String actual = HahaHelper.asString(stringInstance);
  assertTrue(actual.equals("abcde"));
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:18,代码来源:HahaHelperTest.java

示例4: throwExceptionWhenMissingCharArrayValueForStringInMPreview2HeapDump

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test
public void throwExceptionWhenMissingCharArrayValueForStringInMPreview2HeapDump() {
  buffer.setIntsToRead(COUNT_VALUE, OFFSET_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.INT, "offset"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createObjectValueInstance_M_Preview2();

  try {
    HahaHelper.asString(stringInstance);
    fail("this test should have thrown UnsupportedOperationException");
  }
  catch (UnsupportedOperationException uoe) {
    String message = uoe.getMessage();
    assertTrue(message.equals("Could not find char array in " + stringInstance));
  }
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:24,代码来源:HahaHelperTest.java

示例5: readStringOffsetFromHeapDumpInstance_pre_O

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test public void readStringOffsetFromHeapDumpInstance_pre_O() {
  buffer.setIntsToRead(COUNT_VALUE, OFFSET_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.INT, "offset"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createCharArrayValueInstance();

  String actual = HahaHelper.asString(stringInstance);
  assertTrue(actual.equals("bcdef"));
}
 
开发者ID:square,项目名称:leakcanary,代码行数:17,代码来源:HahaHelperTest.java

示例6: readStringAsByteArrayFromHeapDumpInstance_O

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test public void readStringAsByteArrayFromHeapDumpInstance_O() {
  // O uses default charset UTF-8
  buffer = new FakeHprofBuffer("UTF-8");
  initSnapshot(buffer);

  buffer.setIntsToRead(COUNT_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields_O(snapshot, new Field[]{
      new Field(Type.INT, "count"),
      new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createByteArrayValueInstance();

  String actual = HahaHelper.asString(stringInstance);
  assertTrue(actual.equals("abcde"));
}
 
开发者ID:square,项目名称:leakcanary,代码行数:20,代码来源:HahaHelperTest.java

示例7: throwExceptionWhenNotArrayValueForString

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test public void throwExceptionWhenNotArrayValueForString() {
  buffer.setIntsToRead(COUNT_VALUE, OFFSET_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.INT, "offset"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createObjectValueInstance();

  try {
    HahaHelper.asString(stringInstance);
    fail("this test should have thrown UnsupportedOperationException");
  } catch (UnsupportedOperationException uoe) {
    String message = uoe.getMessage();
    assertTrue(message.equals("Could not find char array in " + stringInstance));
  }
}
 
开发者ID:square,项目名称:leakcanary,代码行数:22,代码来源:HahaHelperTest.java

示例8: threadName

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
static String threadName(Instance holder) {
  List<ClassInstance.FieldValue> values = classInstanceValues(holder);
  Object nameField = fieldValue(values, "name");
  if (nameField == null) {
    // Sometimes we can't find the String at the expected memory address in the heap dump.
    // See https://github.com/square/leakcanary/issues/417 .
    return "Thread name not available";
  }
  return asString(nameField);
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:11,代码来源:HahaHelper.java

示例9: hasField

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
static boolean hasField(List<ClassInstance.FieldValue> values, String fieldName) {
  for (ClassInstance.FieldValue fieldValue : values) {
    if (fieldValue.getField().getName().equals(fieldName)) {
      //noinspection unchecked
      return true;
    }
  }
  return false;
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:10,代码来源:HahaHelper.java

示例10: findLeakingReference

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
private Instance findLeakingReference(String key, Snapshot snapshot) {
  ClassObj refClass = snapshot.findClass(KeyedWeakReference.class.getName());
  List<String> keysFound = new ArrayList<String>();
  for (Instance instance : refClass.getInstancesList()) {
    List<ClassInstance.FieldValue> values = classInstanceValues(instance);
    String keyCandidate = asString(fieldValue(values, "key"));
    if (keyCandidate.equals(key)) {
      return fieldValue(values, "referent");
    }
    keysFound.add(keyCandidate);
  }
  throw new IllegalStateException(
      "Could not find weak reference with key " + key + " in " + keysFound);
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:15,代码来源:HeapAnalyzer.java

示例11: findTrackedReferences

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
public List<TrackedReference> findTrackedReferences(File heapDumpFile) {
  if (!heapDumpFile.exists()) {
    throw new IllegalArgumentException("File does not exist: " + heapDumpFile);
  }
  try {
    HprofBuffer buffer = new MemoryMappedFileBuffer(heapDumpFile);
    HprofParser parser = new HprofParser(buffer);
    Snapshot snapshot = parser.parse();
    deduplicateGcRoots(snapshot);

    ClassObj refClass = snapshot.findClass(KeyedWeakReference.class.getName());
    List<TrackedReference> references = new ArrayList<>();
    for (Instance weakRef : refClass.getInstancesList()) {
      List<ClassInstance.FieldValue> values = classInstanceValues(weakRef);
      String key = asString(fieldValue(values, "key"));
      String name =
          hasField(values, "name") ? asString(fieldValue(values, "name")) : "(No name field)";
      Instance instance = fieldValue(values, "referent");
      if (instance != null) {
        String className = getClassName(instance);
        List<String> fields = describeFields(instance);
        references.add(new TrackedReference(key, name, className, fields));
      }
    }
    return references;
  } catch (Throwable e) {
    throw new RuntimeException(e);
  }
}
 
开发者ID:square,项目名称:leakcanary,代码行数:30,代码来源:HeapAnalyzer.java

示例12: findLeakingReference

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
private Instance findLeakingReference(String key, Snapshot snapshot) {
  ClassObj refClass = snapshot.findClass(KeyedWeakReference.class.getName());
  List<String> keysFound = new ArrayList<>();
  for (Instance instance : refClass.getInstancesList()) {
    List<ClassInstance.FieldValue> values = classInstanceValues(instance);
    String keyCandidate = asString(fieldValue(values, "key"));
    if (keyCandidate.equals(key)) {
      return fieldValue(values, "referent");
    }
    keysFound.add(keyCandidate);
  }
  throw new IllegalStateException(
      "Could not find weak reference with key " + key + " in " + keysFound);
}
 
开发者ID:square,项目名称:leakcanary,代码行数:15,代码来源:HeapAnalyzer.java

示例13: defaultToZeroStringOffsetWhenHeapDumpInstanceIsMissingOffsetValue_pre_O

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
@Test public void defaultToZeroStringOffsetWhenHeapDumpInstanceIsMissingOffsetValue_pre_O() {
  buffer.setIntsToRead(COUNT_VALUE, VALUE_ARRAY_INSTANCE_ID);
  buffer.setStringsToRead("abcdef");

  addStringClassToSnapshotWithFields(snapshot, new Field[]{
          new Field(Type.INT, "count"),
          new Field(Type.OBJECT, "value")
  });

  ClassInstance stringInstance = createStringInstance();
  createCharArrayValueInstance();

  String actual = HahaHelper.asString(stringInstance);
  assertTrue(actual.equals("abcde"));
}
 
开发者ID:square,项目名称:leakcanary,代码行数:16,代码来源:HahaHelperTest.java

示例14: findPath

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
Result findPath(Snapshot snapshot, Instance leakingRef) {
  clearState();
  canIgnoreStrings = !isString(leakingRef);

  enqueueGcRoots(snapshot);

  boolean excludingKnownLeaks = false;
  LeakNode leakingNode = null;
  while (!toVisitQueue.isEmpty() || !toVisitIfNoPathQueue.isEmpty()) {
    LeakNode node;
    if (!toVisitQueue.isEmpty()) {
      node = toVisitQueue.poll();
    } else {
      node = toVisitIfNoPathQueue.poll();
      if (node.exclusion == null) {
        throw new IllegalStateException("Expected node to have an exclusion " + node);
      }
      excludingKnownLeaks = true;
    }

    // Termination
    if (node.instance == leakingRef) {
      leakingNode = node;
      break;
    }

    if (checkSeen(node)) {
      continue;
    }

    if (node.instance instanceof RootObj) {
      visitRootObj(node);
    } else if (node.instance instanceof ClassObj) {
      visitClassObj(node);
    } else if (node.instance instanceof ClassInstance) {
      visitClassInstance(node);
    } else if (node.instance instanceof ArrayInstance) {
      visitArrayInstance(node);
    } else {
      throw new IllegalStateException("Unexpected type for " + node.instance);
    }
  }
  return new Result(leakingNode, excludingKnownLeaks);
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:45,代码来源:ShortestPathFinder.java

示例15: fieldToString

import com.squareup.haha.perflib.ClassInstance; //导入依赖的package包/类
static String fieldToString(ClassInstance.FieldValue fieldValue) {
  return fieldToString(fieldValue.getField(), fieldValue.getValue());
}
 
开发者ID:shengxiadeyu,项目名称:leakcannary,代码行数:4,代码来源:HahaHelper.java


注:本文中的com.squareup.haha.perflib.ClassInstance类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。