1da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier/* 2da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * Copyright (C) 2016 The Android Open Source Project 3da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * 4da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * Licensed under the Apache License, Version 2.0 (the "License"); 5da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * you may not use this file except in compliance with the License. 6da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * You may obtain a copy of the License at 7da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * 8da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * http://www.apache.org/licenses/LICENSE-2.0 9da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * 10da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * Unless required by applicable law or agreed to in writing, software 11da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * distributed under the License is distributed on an "AS IS" BASIS, 12da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * See the License for the specific language governing permissions and 14da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier * limitations under the License. 15da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier */ 16da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier 17da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartierpublic class Main { 18da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier public static void main(String[] args) { 19da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier Class klass = Other.class; 20da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier Object[] data = new Object[100000]; 21da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier try { 22da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier System.out.println("Filling heap"); 23da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier int size = 256 * 1024 * 1024; 24da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier int index = 0; 25da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier while (true) { 26da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier try { 27da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier data[index] = new byte[size]; 28da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier index++; 29da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } catch (OutOfMemoryError e) { 30da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier size /= 2; 31da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier if (size == 0) { 32da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier break; 33da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } 34da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } 35da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } 36da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier // Initialize now that the heap is full. 37da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier Other.print(); 38da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } catch (OutOfMemoryError e) { 39da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } catch (Exception e) { 40f6c66c3348a2b64e4b6472827e31f711142006e3Kevin Brodsky System.out.println(e); 41da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } 42da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier } 43da595bec0f9af0b087822e4febc282fe8ec28192Mathieu Chartier} 44