java.lang.OutOfMemoryError类的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(8.2k)|赞(0)|评价(0)|浏览(288)

本文整理了Java中java.lang.OutOfMemoryError类的一些代码示例,展示了OutOfMemoryError类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。OutOfMemoryError类的具体详情如下:
包路径:java.lang.OutOfMemoryError
类名称:OutOfMemoryError

OutOfMemoryError介绍

[英]Thrown when a request for memory is made that can not be satisfied using the available platform resources. Such a request may be made by both the running application or by an internal function of the VM.
[中]当使用可用平台资源无法满足内存请求时引发。这样的请求可以由正在运行的应用程序或VM的内部功能发出。

代码示例

代码示例来源:origin: netty/netty

private void expandArray() {
    // double capacity
    int newCapacity = array.length << 1;

    if (newCapacity < 0) {
      throw new OutOfMemoryError();
    }

    Object[] newArray = new Object[newCapacity];
    System.arraycopy(array, 0, newArray, 0, array.length);

    array = newArray;
  }
}

代码示例来源:origin: spotbugs/spotbugs

public void tricky() {
  try {
    System.out.println("tricky()");
  } catch (OutOfMemoryError e) {
    e.printStackTrace();
  }
  System.gc();
}

代码示例来源:origin: apache/geode

public static long allocate(int size) {
 if (unsafe == null) {
  throw new OutOfMemoryError("Off-heap memory is not available because: " + reason);
 }
 try {
  return unsafe.allocateMemory(size);
 } catch (OutOfMemoryError err) {
  String msg = "Failed creating " + size + " bytes of off-heap memory during cache creation.";
  if (err.getMessage() != null && !err.getMessage().isEmpty()) {
   msg += " Cause: " + err.getMessage();
  }
  if (!SharedLibrary.is64Bit() && size >= (1024 * 1024 * 1024)) {
   msg +=
     " The JVM looks like a 32-bit one. For large amounts of off-heap memory a 64-bit JVM is needed.";
  }
  throw new OutOfMemoryError(msg);
 }
}

代码示例来源:origin: redisson/redisson

/**
 * Increase the storage of this {@link KQueueEventArray}.
 */
void realloc(boolean throwIfFail) {
  // Double the capacity while it is "sufficiently small", and otherwise increase by 50%.
  int newLength = capacity <= 65536 ? capacity << 1 : capacity + capacity >> 1;
  try {
    ByteBuffer buffer = Buffer.allocateDirectWithNativeOrder(calculateBufferCapacity(newLength));
    // Copy over the old content of the memory and reset the position as we always act on the buffer as if
    // the position was never increased.
    memory.position(0).limit(size);
    buffer.put(memory);
    buffer.position(0);
    Buffer.free(memory);
    memory = buffer;
    memoryAddress = Buffer.memoryAddress(buffer);
  } catch (OutOfMemoryError e) {
    if (throwIfFail) {
      OutOfMemoryError error = new OutOfMemoryError(
          "unable to allocate " + newLength + " new bytes! Existing capacity is: " + capacity);
      error.initCause(e);
      throw error;
    }
  }
}

代码示例来源:origin: org.apache.spark/spark-core_2.11

public SparkOutOfMemoryError(OutOfMemoryError e) {
    super(e.getMessage());
  }
}

代码示例来源:origin: pentaho/pentaho-kettle

private void addToCache( Object[] value ) throws KettleException {
 try {
  data.look.add( value );
 } catch ( java.lang.OutOfMemoryError o ) {
  // exception out of memory
  throw new KettleException( BaseMessages.getString( PKG, "FuzzyMatch.Error.JavaHeap", o.toString() ) );
 }
}

代码示例来源:origin: org.apache.spark/spark-core

public SparkOutOfMemoryError(OutOfMemoryError e) {
    super(e.getMessage());
  }
}

代码示例来源:origin: facebook/stetho

private GetResponseBodyResponse readResponseBody(String requestId)
  throws IOException, JsonRpcException {
 GetResponseBodyResponse response = new GetResponseBodyResponse();
 ResponseBodyData bodyData;
 try {
  bodyData = mResponseBodyFileManager.readFile(requestId);
 } catch (OutOfMemoryError e) {
  throw new JsonRpcException(new JsonRpcError(JsonRpcError.ErrorCode.INTERNAL_ERROR,
    e.toString(),
    null /* data */));
 }
 response.body = bodyData.data;
 response.base64Encoded = bodyData.base64Encoded;
 return response;
}

代码示例来源:origin: ltsopensource/light-task-scheduler

private static int hugeCapacity(int minCapacity) {
  if (minCapacity < 0) // overflow
    throw new OutOfMemoryError();
  return (minCapacity > MAX_ARRAY_SIZE) ?
      Integer.MAX_VALUE :
      MAX_ARRAY_SIZE;
}

代码示例来源:origin: graphhopper/graphhopper

@Override
public boolean ensureCapacity(long bytes) {
  if (bytes < 0)
    throw new IllegalArgumentException("new capacity has to be strictly positive");
  long cap = getCapacity();
  long newBytes = bytes - cap;
  if (newBytes <= 0)
    return false;
  int segmentsToCreate = (int) (newBytes / segmentSizeInBytes);
  if (newBytes % segmentSizeInBytes != 0)
    segmentsToCreate++;
  try {
    byte[][] newSegs = Arrays.copyOf(segments, segments.length + segmentsToCreate);
    for (int i = segments.length; i < newSegs.length; i++) {
      newSegs[i] = new byte[1 << segmentSizePower];
    }
    segments = newSegs;
  } catch (OutOfMemoryError err) {
    throw new OutOfMemoryError(err.getMessage() + " - problem when allocating new memory. Old capacity: "
        + cap + ", new bytes:" + newBytes + ", segmentSizeIntsPower:" + segmentSizePower
        + ", new segments:" + segmentsToCreate + ", existing:" + segments.length);
  }
  return true;
}

代码示例来源:origin: stanfordnlp/CoreNLP

public void nudgeDownArraySize() {
 try {
  if (arraySize > 2) {
   considerCreatingArrays(arraySize - 2);
  }
 } catch (OutOfMemoryError oome) {
  oome.printStackTrace();
 }
}

代码示例来源:origin: neo4j/neo4j

private OutOfMemoryError error( long length, int itemSize, OutOfMemoryError error )
{
  return Exceptions.withMessage( error, format( "%s: Not enough memory available for allocating %s, tried %s",
      error.getMessage(), bytes( length * itemSize ), Arrays.toString( candidates ) ) );
}

代码示例来源:origin: cSploit/android

Logger.error(ome.toString());

代码示例来源:origin: ltsopensource/light-task-scheduler

private static int hugeCapacity(int minCapacity) {
  if (minCapacity < 0) // overflow
    throw new OutOfMemoryError();
  return (minCapacity > MAX_ARRAY_SIZE) ?
      Integer.MAX_VALUE :
      MAX_ARRAY_SIZE;
}

代码示例来源:origin: graphhopper/graphhopper

@Override
public boolean ensureCapacity(long bytes) {
  if (bytes < 0)
    throw new IllegalArgumentException("new capacity has to be strictly positive");
  long cap = getCapacity();
  long newBytes = bytes - cap;
  if (newBytes <= 0)
    return false;
  int segmentsToCreate = (int) (newBytes / segmentSizeInBytes);
  if (newBytes % segmentSizeInBytes != 0)
    segmentsToCreate++;
  try {
    int[][] newSegs = Arrays.copyOf(segments, segments.length + segmentsToCreate);
    for (int i = segments.length; i < newSegs.length; i++) {
      newSegs[i] = new int[1 << segmentSizeIntsPower];
    }
    segments = newSegs;
    return true;
  } catch (OutOfMemoryError err) {
    throw new OutOfMemoryError(err.getMessage() + " - problem when allocating new memory. Old capacity: "
        + cap + ", new bytes:" + newBytes + ", segmentSizeIntsPower:" + segmentSizeIntsPower
        + ", new segments:" + segmentsToCreate + ", existing:" + segments.length);
  }
}

代码示例来源:origin: spotbugs/spotbugs

public void tricky2() {
  try {
    System.out.println("tricky()");
  } catch (OutOfMemoryError e) {
    e.printStackTrace();
  }
  for (int i = 0; i < 20; i++)
    System.out.println(i);
  System.gc();
}

代码示例来源:origin: steelkiwi/cropiwa

private static Bitmap transformBitmap(@NonNull Bitmap bitmap, @NonNull Matrix transformMatrix) {
  Bitmap result = bitmap;
  try {
    Bitmap converted = Bitmap.createBitmap(
        bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(),
        transformMatrix,
        true);
    if (!bitmap.sameAs(converted)) {
      result = converted;
      bitmap.recycle();
    }
  } catch (OutOfMemoryError error) {
    CropIwaLog.e(error.getMessage(), error);
  }
  return result;
}

代码示例来源:origin: neo4j/neo4j

@Override
public int size()
{
  if ( length != -1 )
  {
    return length;
  }
  else
  {
    long l = ((end - start) / step) + 1;
    if ( l > Integer.MAX_VALUE )
    {
      throw new OutOfMemoryError( "Cannot index an collection of size " + l );
    }
    length = (int) l;
    return length;
  }
}

代码示例来源:origin: apache/hive

void init(int arenaIx) {
 this.arenaIx = arenaIx;
 try {
  data = preallocateArenaBuffer(arenaSize);
 } catch (OutOfMemoryError oom) {
  throw new OutOfMemoryError("Cannot allocate " + arenaSize + " bytes: " + oom.getMessage()
    + "; make sure your xmx and process size are set correctly.");
 }
 int maxMinAllocs = 1 << (arenaSizeLog2 - minAllocLog2);
 buffers = new LlapAllocatorBuffer[maxMinAllocs];
 headers = new byte[maxMinAllocs];
 int allocLog2Diff = maxAllocLog2 - minAllocLog2, freeListCount = allocLog2Diff + 1;
 freeLists = new FreeList[freeListCount];
 for (int i = 0; i < freeListCount; ++i) {
  freeLists[i] = new FreeList();
 }
 int maxMaxAllocs = 1 << (arenaSizeLog2 - maxAllocLog2),
   headerIndex = 0, headerStep = 1 << allocLog2Diff;
 freeLists[allocLog2Diff].listHead = 0;
 for (int i = 0, offset = 0; i < maxMaxAllocs; ++i, offset += maxAllocation) {
  setHeaderFree(headerIndex, allocLog2Diff, CasLog.Src.CTOR);
  data.putInt(offset, (i == 0) ? -1 : (headerIndex - headerStep));
  data.putInt(offset + 4, (i == maxMaxAllocs - 1) ? -1 : (headerIndex + headerStep));
  headerIndex += headerStep;
 }
}

代码示例来源:origin: tyrantgit/ExplosionField

public static Bitmap createBitmapSafely(int width, int height, Bitmap.Config config, int retryCount) {
    try {
      return Bitmap.createBitmap(width, height, config);
    } catch (OutOfMemoryError e) {
      e.printStackTrace();
      if (retryCount > 0) {
        System.gc();
        return createBitmapSafely(width, height, config, retryCount - 1);
      }
      return null;
    }
  }
}

相关文章