private void predictFutureMemoryStatus() {
	
	System.out.println("================= Future Memory Status =================");
	
	//
	// predict framework objects
	//
	
	System.out.println("## To-be-allocated framework objects");
	if(reducer.getRunningPhase().equals("shuffle")) {
	    computeToBeAllocatedObjs();
	}
	
	//
	// predict user objects
	//
	
	System.out.println("\n## Total user objects");
	
	if(reducer.getRunningPhase().equals("shuffle") && reducer.getMergeCombineFunc() != null) {
	    long tCombineInputRecords = reducer.getMergeCombineFunc().gettCombineInputRecords();
	    combineObjModel.predict(tCombineInputRecords);
	}
	
	else if(reducer.getRunningPhase().equals("reduce")) {
	    long tReduceInputRecords = reducer.getReduceFunc().gettReduceInputRecords();
	    reduceObjModel.predict(tReduceInputRecords);
	}
    }